Apparatus for producing exploded view and animation of assembling, and method thereof

ABSTRACT

An apparatus for producing an exploded view has an input unit, a geometrical data memory for storing geometrical data of parts composing an assembly, a memory for storing assembling process data composed of part to be attached and attaching direction, a calculating unit for displaying the assembly to a display unit based on the geometrical data, and means for determining arranged positions of the parts composing said assembly in a disassembled state based on assembling process data and the geometrical data, thereby an exploded view being displayed in the display unit corresponding to the arranged positions is determined. An apparatus for producing animation of assembling comprises a geometrical data memory for storing geometries of parts composing an assembly, an attaching procedure data memory for storing attaching procedures composed of attaching orders, part to be attached data and attaching direction data, a jointing data memory for storing jointing data composed of part to be attached data and jointing method data, a table for special jointing operation memory for storing a table for special jointing operation composed of jointing method data and operation data special for the jointing method data, and operating data producing means for producing operating data for part to be attached as an input parameter to an animation display function using the geometrical data in the geometrical data memory, the attaching procedure data in the attaching procedure data memory, the jointing data in the jointing data memory, and the table for special jointing operation in the table for special jointing operation memory.

BACKGROUND OF THE INVENTION

[0001] The present invention relates to a method and an apparatus forproducing an exploded view, the exploded view being produced for thepurpose of showing the structure of an assembly composed of pluralparts, an assembling procedure in a manufacturing process, or aprocedure for maintenance and inspection or repairing of the structure,for example.

[0002] The present invention relates to a method and apparatus forproducing an animation showing assembling of parts by which a structureof an assembly composed of plural parts, or an assembling procedure in amanufacturing process, is confirmed on a screen of a central processingunit.

[0003] An exploded view is a drawing in which parts composing anassembly are disassembled from an assembled state into pieces andarranged in an assembling order in the reverse direction of attachment.Such an exploded view is used for the purpose of showing the structureof an assembly composed of plural parts, an assembling procedure in amanufacturing process, or a procedure for maintenance and inspection orrepairing of the structure, for example.

[0004] In the past, an exploded view has been produced by hand based ona manufacturing drawing, such as an assembly drawing, detail drawing andthe like, and with reference to an assembling procedure manual showingan assembling procedure and the like.

[0005] In recent years, a CAD system also has been used in the design ofproducts. An operator has made an exploded view by producing an assemblydrawing of a product to be produced by using a three-dimensional CADsystem and by moving parts with a moving command, taking the assemblingprocedure into consideration, based on data produced by thethree-dimensional CAD system.

[0006] In conventional technology, it has taken a very long time to makean exploded view produced by hand. Although, by utilizing geometricaldata for assembly of a product obtained by a three-dimensional CADsystem eliminates the need to draw at least geometrical pictures ofparts, it takes a long time for an operator to move parts one by one byinputting values representing moving directions and moving amounts.

[0007] Further, in studying an assembling procedure in preparation formanufacturing, it is necessary to confirm whether the assemblingprocedure is correct or not. However, since a trial and error method isrequired in determining the correctness of an assembling procedure,there is a problem in that it takes substantial manpower to revise theexploded view by hand for every procedural change.

[0008] In a conventional method for producing an animation of anassembling procedure, an assembled model as a geometrical product in anassembled state is produced using a three-dimensional CAD system, andgeometrical data is input in an animation display system. Then, anoperating data inputting operation is executed to set operating data asinput parameters for an animation display function.

[0009] After setting the operating data for each of the parts composingthe product, an animation producing process is executed to display theprocess of assembly of the product by animation.

[0010] In the above-mentioned operating data inputting process, asubject part is firstly specified. Next, the kind, the direction and theamount of movement are set for the specified part. Assuming that a partis moved, for example, in a straight line in the positive direction ofthe z-axis by a distance of “500”, it is necessary to set parameters,such as “straight moving”, (0.0, 0.0, 1.0), “500.0”.

[0011] Lastly, the time period of movement is set. The time periodindicates the time range of movement of the part, and, in order toconfirm the order of assembly of the parts, an operator needs to set thetime period so that the time range does not overlap with the time rangeof another part, taking the order of assembly of each part intoconsideration.

[0012] In a conventional apparatus for producing animation of anassembling procedure, a program for inputting geometrical data takes outgeometrical information of an assembly procedure from an input unit andstores it in a geometrical data area. A program for inputting operatingdata inputs through the input unit operating data as input parametersfor the animation display function for each part composing the assembly.

[0013] A program for producing animation generates animation data fromthe geometrical data and the operating data and outputs it to the outputunit. As described above, in the conventional method, it is necessary toset operation data for all of the parts composing the assembly, takingthe order of assembly into consideration.

[0014] The conventional technique is described in, for example, JapanesePatent Application Laid-Open No. 61-147375 (1986), Japanese PatentApplication Laid-open No. 5-324779 (1993), Japanese Patent ApplicationLaid-Open No. 4-37960 (1992).

[0015] In the conventional technology for producing animation, there isa disadvantage in that the procedure carried out by an operator becomescomplicated, since operating data has to be set for each unit of parts.Further, there is a disadvantage in that, when the number of parts in aproduct is large, it takes a very long time to set operating data forall of the parts, taking the order of assembly of the product intoconsideration.

[0016] Furthermore, there is a disadvantage in that it is difficult forthe operator to understand the detailed contents and the degree ofdifficulty of the assembling work using a simple animation in which allof the parts to be assembled are moved at a constant speed or areexpressed with the same attribute.

SUMMARY OF THE INVENTION

[0017] An object of the present invention is to provide an apparatus anda method for easily producing an exploded view capable of confirming anassembling procedure with ease.

[0018] The object of the present invention can be attained by providingan apparatus for producing an exploded view having an input unit, ageometrical data memory for storing geometrical data of parts composingan assembly and a calculating unit for displaying the assembly to adisplay unit based on said geometrical data, which apparatus comprisesmeans for determining arranged positions of the parts composing saidassembly in a disassembled state based on assembling process data andsaid geometrical data, an exploded view being displayed in said displayunit corresponding to the thus determined arranged positions.

[0019] More particularly, said assembling process data is composed ofassembling orders and assembling directions, and said arranging positiondetermining means calculates the scalar products of the vertexcoordinates of each part and the assembling vector thereby to obtain theminimum value of the scalar products, calculates the scalar products ofsaid read-out vertex coordinates of each part and said read-outassembling direction vector thereof to obtain the maximum value of thescalar products, obtains the differences between the minimum values ofthe scalar product and the maximum values of the scalar product todetermine the distances between the parts composing said assembly in adisassembled state on an exploded view based on the obtaineddifferences, and displays an exploded view in said display unitcorresponding to the distances thus determined.

[0020] According to the present invention, the arranging positiondetermining means calculates the scalar products of the vertexcoordinates of each part and the assembling vector thereof to obtain theminimum value of the scalar products, calculates the scalar products ofsaid read-out vertex coordinates of each part and said read-outassembling direction vector thereof to obtain the maximum value of thescalar products, obtains the difference between the minimum values ofthe scalar product and the maximum values of the scalar product todetermine the distances between the parts composing said assembly in adisassembled state on an exploded view based on the obtaineddifferences, and displays an exploded view in said display unitcorresponding to the distances thus determined.

[0021] Therefore, an exploded view can be automatically produced, themanpower for producing an exploded view can be decreased by eliminatingthe operator's conventional work to move parts by individuallyspecifying a moving direction and a moving amount for each part.

[0022] Another object of the present invention is to provide anapparatus and a method to easily produce an animation of an assemblingprocedure by which the detailed contents and the degree of difficulty ofthe assembling procedure and the assembling work can be easilyconfirmed.

[0023] This object of the present invention can be attained by readingout necessary geometrical data from geometrical data of parts composingan assembly; reading out part-to-be attached data andattaching-direction data from attaching procedure data composed ofattaching orders, part-to-be attached data and attaching-direction data;obtaining a corresponding jointing method to this part to be attachedread out in the above step from jointing data composed of part-to-beattached data and jointing-method data, obtaining a correspondingspecial operation for the jointing method obtained in the above stepfrom a table for special-jointing-operation composed of jointing methodsand operation data special for said jointing methods; and producingoperating data for the part to be attached as an input parameter to ananimation display function from the attaching direction and the specialoperation with reference to the geometrical data of the part to beattached.

[0024] The object of the present invention can be attained by readingout necessary geometrical data from geometrical data of parts composingan assembly; reading out part-to-be attached data andattaching-direction data from attaching procedure data composed ofattaching orders, part-to-be attached data and attaching-direction data;obtaining a corresponding jointing method for the part to be attachedread out in the above step from jointing data composed of part-to-beattached data and jointing method data; obtaining a correspondinganimation speed ratio for the jointing method obtained in the above stepfrom a table for animation-speed composed of jointing methods andoperating speed ratio data special for said jointing methods; andproducing operating data for the part to be attached as an inputparameter to an animation display function from the attaching directionand the animation speed ratio with reference to the geometrical data ofthe part to be attached.

[0025] The object of the present invention can be attained by readingout necessary geometrical data from geometrical data of parts composingan assembly; reading out part-to-be attached data andattaching-direction data from attaching procedure data composed ofattaching orders, part-to-be attached data and attaching-direction data;obtaining a corresponding jointing method for the part to be attachedread out in the above step from jointing data composed ofpart-to-be-attached data and jointing-method data; obtaining acorresponding sound data for the jointing method obtained in the abovestep from a table for jointing sound composed of jointing methods andsound data special for said jointing methods; and producing operatingdata for the part to be attached as an input parameter to an animationdisplay function from the attaching direction and the sound data withreference to the geometrical data of the part to be attached.

[0026] The operating data of parts to be attached for producing ananimation is produced by making a linkage among the geometrical data ofparts to be attached, the attaching-direction data and the jointingmethod for jointing between parts.

[0027] Thereby, there is provided operating data for animation in whicha part to be attached in an assembled state is detached from theassembly and is again attached into the assembled state. By applyingthis operation to all the parts composing the assembly according to theassembling procedure, the operating data for all parts can be obtainedand consequently the animation of the assembling procedure which showsthe attaching order of the assembly with moving pictures is easilyproduced.

BRIEF DESCRIPTION OF THE DRAWINGS

[0028]FIG. 1 is a block diagram showing the construction of anembodiment of an apparatus for producing an exploded view according tothe present invention.

[0029]FIG. 2 is a functional block diagram showing the detailedprocedure for moving a part to be attached using the apparatus of FIG.1.

[0030]FIG. 3 is a diagram showing an assembled state of an assembly.

[0031]FIG. 4 is a diagram explaining the operational principle formoving a part to be attached according to the procedure of FIG. 2.

[0032]FIG. 5 is a view explaining the operational principle for moving apart to be attached according to the procedure of FIG. 2.

[0033]FIG. 6 is a flow chart of the processing procedure for moving apart to be attached.

[0034]FIG. 7 is a diagram showing another assembled state of anassembly.

[0035]FIG. 8 is a diagram showing the data structure of the assemblingprocess data.

[0036]FIG. 9 is a diagram for explaining the operation for moving a partto be attached in the assembly shown in FIG. 7.

[0037]FIG. 10 is a diagram for explaining the operation for moving apart to be attached in the assembly shown in FIG. 7.

[0038]FIG. 11 is a diagram for explaining the operation for moving apart to be attached in the assembly shown in FIG. 7.

[0039]FIG. 12 is a diagram for explaining the operation for moving apart to be attached in the assembly shown in FIG. 7.

[0040]FIG. 13 is a diagram of an exploded view produced by an embodimentaccording to the present invention for the assembly shown in FIG. 7.

[0041]FIG. 14 is a diagram for explaining the operation for moving apart to be attached in the assembly having a three-dimensional geometry.

[0042]FIG. 15 is a diagram of an exploded view produced by an embodimentaccording to the present invention based on three-dimensionalgeometrical data.

[0043]FIG. 16 is a diagram for explaining the operation of an embodimentfor moving a part to be attached.

[0044]FIG. 17 is a diagram of an exploded view produced by an embodimentaccording to the present invention for the assembly shown in FIG. 16.

[0045]FIG. 18 is a functional block diagram showing the detailedprocedure for moving a part to be attached in another embodiment of anapparatus for producing an exploded view according to the presentinvention.

[0046]FIG. 19 is a diagram for showing an example of a bounding boxcontaining the geometry of a part.

[0047]FIG. 20 is a block diagram showing the structure of an apparatusfor producing an exploded view according to the present invention.

[0048]FIG. 21 is a functional block diagram showing the detailedprocedure for moving a part to be attached using the apparatus of FIG.20.

[0049]FIG. 22 is a diagram showing an assembled state of an assembly.

[0050]FIG. 23 is a diagram for explaining the operation for moving apart to be attached for the assembly shown in FIG. 22.

[0051]FIG. 24 is a diagram for explaining the operation for moving apart to be attached for the assembly shown in FIG. 22.

[0052]FIG. 25 is a diagram of an exploded view produced by an embodimentaccording to the present invention.

[0053]FIG. 26 is a flow chart of the processing procedure for moving apart to be attached as shown in FIG. 22.

[0054]FIG. 27 is a functional block diagram showing the detailed formoving a part to be attached in another embodiment of an apparatus forproducing an exploded view according to the present invention.

[0055]FIG. 28 is a diagram showing an assembled state of an assembly.

[0056]FIG. 29 is a diagram showing an example of a contact surface of anassembly.

[0057]FIG. 30 is a diagram for explaining the operation for moving apart to be attached for the assembly shown in FIG. 27.

[0058]FIG. 31 is a diagram of an exploded view produced by an embodimentaccording to the present invention.

[0059]FIG. 32 is a functional block diagram showing the detailedprocedure for moving a part to be attached in another embodiment of anapparatus for producing an exploded view according to the presentinvention.

[0060]FIG. 33 is a diagram for explaining the principle of producing acorresponding line of contact surfaces.

[0061]FIG. 34 is a diagram of an exploded view containing acorresponding line produced by an embodiment according to the presentinvention.

[0062]FIG. 35 is a diagram for explaining the principle for the methodof determining a gap between parts based on a direction of projection.

[0063]FIG. 36 is a diagram for showing an assembled state of anassembly.

[0064]FIG. 37 is a diagram showing the data structure of the assemblingprocess data.

[0065]FIG. 38 is a diagram of an exploded view produced by an apparatusaccording to the present invention.

[0066]FIG. 39 is a diagram showing the data structure of the assemblingprocess data.

[0067]FIG. 40 is a diagram of an exploded view produced by an apparatusaccording to the present invention.

[0068]FIG. 41 is a diagram showing the data structure of the assemblingprocess data.

[0069]FIG. 42 is a diagram of an exploded view produced by an apparatusaccording to the present invention.

[0070]FIG. 43 is a process flow chart of a method of producing anexploded view according to the present invention.

[0071]FIG. 44 is a process flow chart of a method of producing anexploded view as shown in FIG. 18.

[0072]FIG. 45 is a detailed flow chart of the step 4407 in FIG. 44.

[0073]FIG. 46 is a diagram showing an assembled state of an assembly.

[0074]FIG. 47 is a diagram showing an assembled state of an assemblywith the addition of bounding boxes and a half-line to the parts to beattached.

[0075]FIG. 48 is a diagram showing a state after completion ofdetermining the arrangement position.

[0076]FIG. 49 is a diagram showing geometrical data of an assembly withthe assembling of a sub-assembly.

[0077]FIG. 50 is a diagram showing the data structure of assemblingprocess data with assembling of a sub-assembly.

[0078]FIG. 51 is a diagram of an assembly represented by a treestructure.

[0079]FIG. 52 is a flow chart showing another method of producing anexploded view coping with assembling of a sub-assembly according to thepresent invention.

[0080]FIG. 53 is a diagram showing the data structure of a stack for apart to be attached.

[0081]FIG. 54 is a diagram showing a intermediate state during producingan exploded view.

[0082]FIG. 55 is a diagram showing the final state of producing anexploded view.

[0083]FIG. 56 is a diagram showing the data structure of the assemblingprocedure for assembling of a sub-assembly.

[0084]FIG. 57 is a diagram showing the data structure of the assemblingprocedure for assembling of a sub-assembly.

[0085]FIG. 58 is a flow chart showing the processing procedure in a caseof editing an assembling procedure for producing of an exploded viewaccording to the present invention.

[0086]FIG. 59 is a diagram showing an assembled state of an assembly.

[0087]FIG. 60 is a diagram showing the data structure of assemblingprocess data.

[0088]FIG. 61 is a diagram for explaining the method of instructingassembling procedure editing on an exploded view.

[0089]FIG. 62 is a diagram showing the data structure of assemblingprocess data after completion of assembling procedure editing.

[0090]FIG. 63 is a diagram showing an exploded view after completion ofassembling procedure editing.

[0091]FIG. 64 is a diagram showing the data structure of assemblingprocess data after completion of assembling procedure editing.

[0092]FIG. 65 is a diagram showing an exploded view after completion ofassembling procedure editing.

[0093]FIG. 66 is a flow-chart showing the basic procedure of a methodfor producing animation of an assembling procedure according to thepresent invention.

[0094]FIG. 67 is a block diagram showing an apparatus for producinganimation of an assembling procedure according to the present invention.

[0095]FIG. 68 is a flow-chart showing the detailed procedure of anoperation data producing process.

[0096]FIG. 69 is a functional diagram showing an apparatus executingoperation data producing process.

[0097]FIG. 70 is a flow-chart showing the detailed procedure of adetaching operation data producing process.

[0098]FIG. 71 is a functional diagram showing an apparatus executingdetaching operation data producing process.

[0099]FIG. 72 is a diagram showing an example of assembly.

[0100]FIG. 73 is a diagram showing assembling procedure data.

[0101]FIG. 74 is a diagram showing operation data for a detachingoperation produced by an embodiment according to the present invention.

[0102]FIG. 75 is a diagram showing an animation display based on theoperation data for a detaching operation produced by an embodimentaccording to the present invention.

[0103]FIG. 76 is a flow-chart showing the detailed procedure of anassembling operation data producing process.

[0104]FIG. 77 is a flow-chart showing the detailed procedure of anassembling time step setting process in the assembling operation dataproducing process.

[0105]FIG. 78 is a functional diagram showing an apparatus executingassembling operation data producing process.

[0106]FIG. 79 is a diagram explaining operation data for an assemblingoperation produced by an embodiment according to the present invention

[0107]FIG. 80 is a diagram showing an animation display based on theoperation data for an assembling operation produced by an embodimentaccording to the present invention.

[0108]FIG. 81 is a diagram showing an animation display based on theoperation data for an assembling operation produced by an embodimentaccording to the present invention.

[0109]FIG. 82 is a diagram showing an animation display based on theoperation data for an assembling operation produced by an embodimentaccording to the present invention.

[0110]FIG. 83 is a diagram showing an animation display based on theoperation data for an assembling operation produced by an embodimentaccording to the present invention.

[0111]FIG. 84 is a functional diagram showing an apparatus forming anembodiment according to the present invention.

[0112]FIG. 85 is a diagram showing a table for aspecial-jointing-operation.

[0113]FIG. 86 is a functional diagram showing an apparatus executingoperation data producing process.

[0114]FIG. 87 is a functional diagram showing an apparatus executingassembling operation data producing process.

[0115]FIG. 88 is a diagram showing an example of an assembly.

[0116]FIG. 89 is a diagram showing assembling procedure data.

[0117]FIG. 90 is a diagram showing jointing data.

[0118]FIG. 91 is a diagram showing operation data for an assemblingoperation produced by an embodiment according to the present invention.

[0119]FIG. 92 is diagram view showing an animation display based on theoperation data for an assembling operation produced by an embodimentaccording to the present invention.

[0120]FIG. 93 is a diagram showing an animation display based on theoperation data for an assembling operation produced by an embodimentaccording to the present invention.

[0121]FIG. 94 is a block diagram showing an apparatus forming anembodiment according to the present invention.

[0122]FIG. 95 is a diagram showing a table for animation-speed-ratio.

[0123]FIG. 96 is a functional diagram showing an apparatus executingoperation data producing process.

[0124]FIG. 97 is a functional diagram showing an apparatus executingassembling operation data producing process.

[0125]FIG. 98 is a diagram showing an example of an assembly.

[0126]FIG. 99 is a diagram showing an embodiment of assembling proceduredata.

[0127]FIG. 100 is a diagram showing jointing data.

[0128]FIG. 101 is a diagram showing operation data for an assemblingoperation produced by an embodiment according to the present invention.

[0129]FIG. 102 is a diagram showing an animation display based on theoperation data for an assembling operation produced by an embodimentaccording to the present invention.

[0130]FIG. 103 is a diagram showing an animation display based on theoperation data for an assembling operation produced by an embodimentaccording to the present invention.

[0131]FIG. 104 is a diagram showing an animation display based on theoperation data for an assembling operation produced by an embodimentaccording to the present invention.

[0132]FIG. 105 is a block diagram showing an apparatus forming anembodiment according to the present invention.

[0133]FIG. 106 is a diagram showing a table for working sound.

[0134]FIG. 107 is a functional diagram showing an apparatus executingoperation data producing process.

[0135]FIG. 108 is a functional diagram showing an apparatus executingassembling operation data producing process.

[0136]FIG. 109 is a diagram showing operation data for an assemblingoperation produced by an embodiment according to the present invention.

[0137]FIG. 110 is a functional diagram showing an apparatus executingdetaching operation data producing process.

[0138]FIG. 111 is a diagram showing an example of an assembly.

[0139]FIG. 112 is a diagram showing a bounding box containing thegeometry of the parts of an assembly.

[0140]FIG. 113 is a diagram showing an animation display based on theoperation data for a detaching operation produced by an embodimentaccording to the present invention.

[0141]FIG. 114 is a diagram showing a bounding box containing thegeometry of the parts of an assembly.

[0142]FIG. 115 is a functional diagram showing an apparatus executingoperation data producing process.

[0143]FIG. 116 is a diagram showing an example of an assembly detachedby a detaching operation.

[0144]FIG. 117 is a diagram showing an example of an assembly detachedby a detaching operation.

[0145]FIG. 118 is a diagram for explaining the principle of operation ofan assembling operation data producing process.

[0146]FIG. 119 is a diagram showing working data.

[0147]FIG. 120 is a diagram showing an example of an assembly detachedby a detaching operation.

[0148]FIG. 121(A) is a table which shows functions for calculating ananimation time for an assembling operation data producing means.

[0149]FIG. 121(B) is a diagram showing an animation display based onproduced assembling operation data.

[0150]FIG. 122 is a block diagram showing an apparatus forming anembodiment according to the present invention.

[0151]FIG. 123 is a functional diagram showing the executing of anassembling operation data producing process.

[0152]FIG. 124 is a diagram showing operation data for an assemblingoperation produced by an embodiment according to the present invention.

[0153]FIG. 125 is a diagram showing an animation display based on theoperation data produced by an embodiment according to the presentinvention.

[0154]FIG. 126 is a diagram showing an animation display based on theoperation data produced by an embodiment according to the presentinvention.

[0155]FIG. 127 is a diagram showing an animation display based on theoperation data produced by an embodiment according to the presentinvention.

[0156]FIG. 128 is a functional diagram showing the executing of anassembling operation data producing process.

[0157]FIG. 129 is a diagram showing operation data for an assemblingoperation produced by an embodiment according to the present invention.

[0158]FIG. 130 is a diagram showing an animation display based on theoperation data produced by an embodiment according to the presentinvention.

[0159]FIG. 131 is a diagram showing an animation display based on theoperation data produced by an embodiment according to the presentinvention.

[0160]FIG. 132 is a functional diagram showing the executing of anassembling operation data producing process.

[0161]FIG. 133 is a diagram showing an example of an assembly.

[0162]FIG. 134 is a diagram showing assembling procedure data.

[0163]FIG. 135 is a diagram showing jointing data.

[0164]FIG. 136 is a diagram showing operation data for an assemblingoperation produced by an embodiment according to the present invention.

[0165]FIG. 137 is a diagram showing an animation display based on theoperation data for an assembling operation produced by an embodimentaccording to the present invention.

DESCRIPTION OF THE INVENTION

[0166]FIG. 1 shows the structure of an embodiment of an apparatus forproducing an exploded view according to the present invention. An inputunit 101 is composed of a machine taking instructions from an operator,such as keyboards and a mouse, and a machine receiving data from anothercomputer, such as a communication apparatus and a floppy disk drive.

[0167] A central processing unit (CPU) 102 is constructed with a CPUwhich performs calculations on data received from a memory 103 accordingto a program stored in the memory 103, and exchanges data between theinput unit 101 and an output unit 104. The memory 103 is constructedwith random access memories, magnetic disks and so on, and storesprograms and data. The output unit 104 is constructed with a displayunit, such as a CRT, and machines to transfer data to another computer,such as a communication apparatus and a floppy disk drive.

[0168] The memory 103 stores geometrical data 105, assembling processdata 106, a program 107 for inputting geometrical data, a program 108for inputting assembling process data, a program 109 for moving a partto be attached, and a program 110 for displaying an exploded view.

[0169] The shapes of the components are stored as part of thegeometrical data 105 for every component. The geometrical data area 105stores geometrical information for an assembly. The assembling processdata area 106 stores information concerning parts to be attached 111 andattaching directions 112 in assembling order. The assembling processdata might, have been generated automatically from the geometrical data105 by a program.

[0170] The program 107 for inputting geometrical data fetchesgeometrical information of an assembly from the input unit 101 andstores it in the geometrical data area 105. The program for inputting anassembling procedure fetches parts to be attached and attachingdirections from the input unit 101 in an assembling order and storesthem in the assembling process data area 106.

[0171] The program 109 for moving a part to be attached calculates theposition of the part to be attached on an exploded view using thegeometrical data of the part to be attached 111, the geometrical data ofa part having been attached and an attaching direction 112, and changesthe part positions of the parts to be attached in the geometrical data105. The program 110 for displaying an exploded view outputs thegeometrical data 105 to the output unit 104.

[0172] Inputting of the geometrical data 105 and the assembling processdata 106 is performed by an operator using a mouse and a key-board, orthrough a net-work or a floppy disk in a case of data prepared byanother computer.

[0173]FIG. 43 shows an embodiment of a method for producing an explodedview according to the present invention. In process 4301, geometricaldata of parts relating to an object to be assembled and arrangementpositions of these parts in the state of completion of the assemblingare fetched. In process 4302, the assembling process data composed ofdata on assembling orders of parts and assembling directions is fetched.

[0174] In process 4303, the position of each part composing the assemblyin a disassembled state is calculated using the geometry of the part,the arrangement position, the assembling order and the assemblingdirection. In process 4304, the geometries of the parts are indicatedbased on the arranging positions obtained in process 4303.

[0175]FIG. 2 shows the detailed construction of an embodiment of aprogram 109 for moving a part to be attached. A program 201 forsequentially reading-out a procedure reads out assembling proceduresfrom the assembling process data area 106 one by one, and stores theminto a memory area 202 for a part to be attached and a memory area 208for an attaching direction. The attaching direction 112 indicates thedirection when a part to be attached is attached to a part having beenattached, and is a unit vector. Let the vector be V_(a).

[0176] The memory area 204 for a part having been attached stores a listof parts having been attached in the steps of the procedure prior to acertain step of the assembling procedure. The program 205 forcalculating the minimum value of a scalar product reads out the list ofparts having been attached from the memory area 204 for a part havingbeen attached, calculates the scalar products of the vertex coordinatesof the parts and the attaching direction, and calculates the minimumvalue among them. Let the minimum value be D_(min).

[0177] The program 206 for calculating the maximum value of a scalarproduct reads out a part to be attached from the memory area 202 for apart to be attached, and extracts the vertex coordinates of the partfrom the geometrical data 105, and calculates the scalar product of thecoordinates and the attaching direction to obtain the maximum valueamong them.

[0178] Let the maximum value be D_(max). The program 207 for changingthe position of a part to be attached obtains a vector V for moving thepart to be attached using the following equation (1). Therein, the valueD_(const) is a gap of a certain value determined in advance.

V=(D _(min) −D _(max) −D _(const))×V _(a)  (1)

[0179] Then, the position M_(o) of the part to be attached is fetchedfrom the geometrical data, and multiplied by the moving matrix M_(v)obtained from the moving vector V to obtain the value M which is writtenin the geometrical data as a new position of the part. This calculationis performed with the following equation (2).

M=M _(v) ×M _(o)  (2)

[0180] The program 208 for adding a part having been attached adds thepart to be attached which has changed its position into the memory area204 for a part having been attached.

[0181] Description will be made below on the principle of production ofan exploded view with the program 109 for moving a part to be attached,referring to a detailed example.

[0182]FIG. 3 shows an assembled state of two parts 301 and 302. Let thepart 301 be a part having been attached and the part 302 be a part to beattached. A vector 303 indicates the attaching direction of the part302. By the program 205 for calculating the minimum value of a scalarproduct, the minimum value of the scalar product of the vertexcoordinates of the part having been attached 301 and the attachingdirection 303 are obtained.

[0183] In the case of FIG. 3, the scalar product of the vertexcoordinate 401 and the attaching direction becomes the minimum as shownin FIG. 4, and the value is a magnitude indicated by the arrow 402. Thatis, the geometry of the part having been attached 301 exists in a domainlarger than the minimum value of the scalar product 402 when theattaching direction 303 is thought of as a number line.

[0184] On the other hand, by the program 206 for calculating the maximumvalue of a scalar product, the maximum value of the scalar product ofthe vertex coordinates of the part to be attached 302 and the attachingdirection 303 are obtained.

[0185] In the case of FIG. 3, the scalar product of the vertexcoordinate 403 and the attaching direction becomes a maximum, as shownin FIG. 4, and the value is a magnitude indicated by the arrow 404. Thatis, the geometry of the part to be attached 302 exists in a domainsmaller than the maximum value of the scalar product 404 when theattaching direction 303 is thought of as a number line.

[0186] Therefore, subtracting the maximum value 404 from the minimumvalue 402 produces a value indicated by the arrow 405. As the part to beattached is moved in the attached direction by the distance indicated bythe arrow 405, the existing domains of the part having been attached 301and the part to be attached 302 do not overlap with each other on thenumber line of the attaching direction 303.

[0187] Since the domains, however, contact each other in this state, apre-set constant value 501 is subtracted from the value 405. Then themoving amount becomes the distance indicated by the arrow 502, as shownin FIG. 5. As the part to be attached 302 is moved in parallel to theattaching direction 303 by the moving amount 502, it is possible toobtain an exploded view in which the part having been attached 301 andthe part to be attached 302 are separated from each other.

[0188]FIG. 6 shows the process flow of the program for moving the partto be attached. In process 601, a part to be attached in the step of thefirst procedure in the assembling process data is assumed to be a parthaving been attached.

[0189] In process 602, the processes of process 603 to process 607 aresequentially repeated from the second procedure step to the finalprocedure step. In process 603, a part to be attached and an attachingdirection in the procedure step now are read out from the attachingprocedure data.

[0190] In process 604, all vertex coordinates of the part to be attachedare read out from the geometrical data, and the scalar product of eachof the vertex coordinates and the attaching direction are calculated,and the maximum value is obtained among the values.

[0191] In process 605, all vertex coordinates of the part having beenattached are read out from the geometrical data and the scalar productof each of the vertex coordinates and the attaching direction arecalculated, and the minimum value is obtained among the values.

[0192] In process 606, the part to be attached is moved by a vectorwhich is obtained by subtracting the maximum value and a certain valuefrom the minimum value and by applying the attaching direction to theresult. In process 607, the part to be attached, which has been broughtinto the disassembled state by the movement is added to the part havingbeen attached.

[0193] The process of producing an exploded view through the processflow in FIG. 6 will be described below, referring to a detailed example.FIG. 7 shows the geometry of an assembly used in the explanation. Thestructure of the assembly includes a part 702 fixed to a plate 701 witha bolt 703, and a part 704 fixed to the plate 701 with a bolt 705.

[0194] The attaching direction of the part 702 and the bolt 703 isindicated by the directional vector 706, and the attaching direction ofthe part 704 and the bolt 705 is indicated by the directional vector707.

[0195] The assembling process data for the assembly in FIG. 7 is shownin, for example, FIG. 8. The column including the step of procedure 801shows sequence numbers 804 to 808 for the assembling procedure, andassembling is performed in the order of these numbers.

[0196] The column including the part to be attached 802 shows parts tobe attached in corresponding steps of the procedure. Each number in thecolumn 802 in FIG. 8 corresponds to the symbol attached to each part inFIG. 7.

[0197] The column including the attaching direction 803 shows directionvectors expressing attaching directions of the parts in thecorresponding steps of the procedure. Each attaching direction in thecolumn 803 in FIG. 8 corresponds to the symbol attached to eachdirectional vector in FIG. 7. Since the first procedure step 804 relatesto a case of setting a part at the beginning, there is no need tospecify the attaching direction.

[0198] Firstly, a part to be attached 701 in the step of the firstprocedure 804 is designated as a part having been attached. At thisstage, the assembly is in an assembled state, as shown in FIG. 7.

[0199] Herein, for the purpose of explanation, a part having beenattached is shown by dot-shading and part to be attached is shown byinclining-hatching in order to discriminate between a part to beattached and a part having been attached.

[0200] In the state of FIG. 7, the part 701 is a part having beenattached. Next, in process 602, the processes of process 603 to process607 are sequentially repeated for each of the procedure step 1 to theprocedure step 5. As the process 603 is performed in the secondprocedure step 805, the part to be attached is part 702. This state isshown in FIG. 9.

[0201] By performing process 604, the maximum value of scalar product901 is obtained, and by performing process 605 the minimum value ofscalar product 902 is obtained. By performing process 606 the differencebetween the minimum value and the maximum value 903 is obtained.

[0202] By letting a certain gap value be the amount 904, the movingvector 905 is obtained and the position of the part to be attached 702becomes the position 906. By performing process 607 the part to beattached 702 becomes a part having been attached 906.

[0203]FIG. 10 shows a feature where process 603 to process 607 are beingperformed in the third procedure step 806. The part to be attached isthe bolt 703 and the attaching direction vector is shown by an arrow706.

[0204] By performing process 604 the maximum value of the scalar productis shown by the arrow 1001 since the part-to-be attached is the bolt703. By performing process 605, the minimum value of the scalar productis shown by an arrow 1002, since the part having been attached is thepart 701 and the part 702.

[0205] The value 1003 is obtained by subtracting the value 1001 from thevalue 1001, and the value 1005 is obtained by further subtracting acertain value 1004 from the result. As the part 703, which is a part tobe attached, is moved in the attaching direction 706, the position ofthe part 703 becomes the position 1006. And, the part 703 becomes a parthaving been attached in the position 1006. Similarly, the part to beattached is the bolt 703 and the attaching direction vector is shown byan arrow 706.

[0206]FIG. 11 shows a feature where process 603 to process 607 are beingperformed in the fourth procedure step 807. In this case, the maximumvalue of the scalar product is equal to the minimum value of the scalarproduct and is shown by the arrow 1101 in FIG. 11. Therefore, the movingamount is the gap distance 1102. Therefore, the position of the part 704after being moved is the position 1103.

[0207] Further, FIG. 12 shows a feature where process 603 to process 607are being performed in the fifth procedure step 808. The maximum valueof the scalar product of the vertex coordinate of the part to beattached 705 and the attaching direction 707 is the magnitude shown bythe arrow 1201.

[0208] The minimum value among the scalar products of the vertexcoordinates of the parts having been attached 701 to 704 and theattaching direction 707 is the amount shown by the arrow 1202.

[0209] The difference between the minimum value and the maximum value isthe amount shown by the arrow 1203. Letting the gap be the amount shownby the arrow 1204, the moving amount becomes the distance 1205.Therefore, the position of the part 705 after being moved is theposition 1206.

[0210]FIG. 13 shows the geometrical arrangement after completion of theprocesses. An exploded view can be obtained by displaying this data.

[0211] Although the description in this embodiment has been made in acase of a two-dimensional view, the present invention can be directlyrealized in the case of a three-dimensional view. In FIG. 14, forexample, let the part 1401 be a part to be attached, the part 1402 be apart having been attached, the arrow 1403 directed downwardly be theattaching direction.

[0212] The maximum value of the scalar product of the attachingdirection 1403 and the vertex coordinate of the part to be attached 1401is the amount shown by the arrow 1404.

[0213] The minimum value of the scalar product of the attachingdirection 1403 and the vertex coordinate of the part having beenattached 1402 is the amount shown by the arrow 1405. The amount obtainedby subtracting the maximum value 1405 and the distance 1406 for theshift from the minimum value 1404 is represented by the moving vector1407 of the part to be attached. FIG. 15 shows a geometricalrepresentation of the part to be attached 1402 after being moved by themoving vector.

[0214] In the above embodiment, the scalar product of a part to beattached or a part having been attached and an attaching direction arecalculated. In a case where a curved surface is included in a part, aneasily understandable exploded view can be produced by incorporating thecontrol points of curved lines and curved surfaces into points forcalculating the scalar products.

[0215] In FIG. 16, let the part 1601 be a part to be attached, and thepart 1602 be a part having been attached. In a case where a curvedsurface 1603 is included in both the part to be attached and the parthaving been attached, the control points 1605 and 1606 of the curvedsurface 1603 are incorporated into points for calculating scalarproducts, as well as the coordinates of vertexes 1607, 1608 when thescalar products with the attaching direction 1609 are calculated.

[0216] As a result, the maximum value among the scalar products of thecoordinates of the vertexes and the control points of the part to beattached 1601 and the attaching direction vector 1609 is the value 1610of the scalar product of the coordinate of the vertex 1608 and thedirectional vector 1609.

[0217] The minimum value among the scalar products of the coordinates ofthe vertexes and the control points of the part having been attached1602 and the attaching direction vector 1609 is the value 1611 of thescalar product of the coordinate of the control point 1605 and thedirectional vector 1609.

[0218] The value 1613, which is obtained by subtracting the gap amount1612 from the difference of the minimum value 1611 and the maximum value1610, becomes the moving amount of the part to be attached 1601.

[0219]FIG. 17 shows the geometrical arrangement after the part is moved.Although not all parts including a curved line or curved surface can bedetached by using only coordinates of vertexes, by using control pointsof a curved line and curved surface it is possible to produce anexploded view where all parts are detached.

[0220] In another embodiment of the present invention, vertexes of abounding box, which is a polyhedron containing a geometry of a part, areused instead of using the vertexes and control points of the geometry ofthe part itself.

[0221]FIG. 18 shows the construction of a program 109 for calculating amoving amount of a part to be attached to realize the present invention.The program is formed by adding a program 1801 for calculating abounding box to the program 109 in FIG. 2 for calculating a movingamount of a part to be attached. The program 1801 for calculating abounding box obtains a polyhedron containing the geometry of a part withreference to the geometrical data 105.

[0222] The program 205 for calculating the minimum value of a scalarproduct reads out a bounding box, corresponding to the part stored inthe memory 204 for a part having been attached, from the program 1801for calculating a bounding box, calculates the scalar product of thecoordinate of each vertex and the attaching direction vector stored inthe memory area 208 for storing the attaching direction, and obtains theminimum value among these values.

[0223] The program 206 for calculating the maximum value of the scalarproduct reads out a bounding box corresponding to the part stored in thememory 204 for a part having been attached from the program 1801 forcalculating a bounding box, calculates the scalar product of thecoordinate of each vertex and the attaching direction vector stored inthe memory area 208 for storing the attaching direction, and obtains themaximum value among these values. The other parts in FIG. 18 are thesame as in FIG. 2.

[0224] The bounding box in the form of a polyhedron containing thegeometry of a part is, for example, a rectangular block 1902 parallel tothe coordinate axes of a coordinate system for a part or assembly asshown in FIG. 19.

[0225] In such a bounding box, it is possible to calculate the maximumvalue and the minimum value in the x-direction of the coordinates of thevertexes and the control points constructing the geometry of a part, themaximum value and the minimum value in the y-direction, and the maximumvalue and the minimum value in the z-direction, respectively.

[0226] The calculation of bounding boxes for all parts may be performedbefore calculating the moving amounts in advance, or may be performedduring calculating moving amounts. And, the bounding boxes may beincluded in the geometrical data 105.

[0227] In this case, the program 1801 for calculating a bounding box isnot necessary. Since the bounding box contains the geometry of a partcompletely, it is possible to obtain an exploded view where all of theparts are separated since the moving amounts of parts to be attachedcertainly become larger than the moving amounts calculated using thecoordinates of vertexes and control points.

[0228] An embodiment using bounding boxes will be described in detailbelow. FIG. 44 is a flow-chart showing a procedure for determining anarrangement of parts on an exploded view. In process 4401, geometricaldata of parts relating to an object to be assembled and arrangementpositions of parts in the state of completion of assembling are fetched.

[0229] In process 4402, the assembling process data composed of dataindicating the assembling orders of parts and assembling directions isfetched. In process 4403, a list of parts accepting a part to beattached as a list of parts having been attached is emptied once and thepart to be attached in the first data of the assembling process data isset in the list of parts accepting part to be attached.

[0230] In process 4404, the process 4405 to process 4409 aresequentially repeated for each of the part to be attached in the seconddata of the assembling process data to the part to be attached in thefinal data in the assembling order. In process 4405, a bounding box of apart to be attached is calculated. Next, in process 4406, a bounding boxcontaining all the parts in the list of parts accepting a part to beattached is calculated.

[0231] In process 4407, using the attaching direction, the bounding boxof a part to be attached, the bounding box of a part accepting a part tobe attached, and a moving amount of the part to be attached arecalculated so that both bounding boxes are adjacent to each other.

[0232] In process 4408, the part to be attached is moved in the oppositedirection to the attaching direction by the moving amount obtained inprocess 4407. In process 4409, the name of the part to be attached aftercompletion of moving is added to the list of parts accepting a part tobe attached.

[0233]FIG. 45 is a detailed flow-chart showing the process 4407. Inprocess 4501, half-lines are drawn, each half-line having a startingpoint of each vertex of a bounding box of a part to be attached andextending in the opposite direction to the attaching direction. In thecase of a two-dimensional view, four half-lines are drawn. In the caseof a three-dimensional view, eight half-lines are drawn.

[0234] In process 4502, the intersecting points of the half-linesproduced in process 4501 with the bounding box of the part accepting apart to be attached are obtained. When a half-line has two intersectingpoints with the bounding box, the point existing at a farther place fromthe starting point is employed as the intersecting point.

[0235] In process 4503, the distance between the starting point and theintersecting point for each of the half-lines is calculated. When thereis no intersecting point, the distance is put to zero. In process 4504,the maximum value among the distances obtained in process 4503 isselected and the maximum value is set as the moving amount.

[0236]FIG. 46 to FIG. 48 show an example of producing an exploded view.FIG. 46 is a view showing an assembly, for explanation, in a completedstate. The assembly has such a structure that a bolt 462 is fixed to aplate 4601. Let the bolt 4602 be a part to be attached, the plate 4601be a part accepting a part to be attached, and the attaching directionof the bolt 4602 be the direction 4603.

[0237] The process will be described, referring to FIG. 47 showinginformation on the bounding box and the half-lines used in calculation.Firstly, in process 4405 and process 4406, a bounding box 4701 of thepart accepting a part to be attached and a bounding box 4702 of the partto be attached is calculated.

[0238] Next, in process 4501, half-lines 4707, 4708, 4709, 4710 aredrawn from the vertexes 4703, 4704, 4705, 4706 of the bounding box 4702of the part to be attached in the opposite direction to the attachingdirection 4603. Next, in process 4502, intersecting points 4711, 4712,4713, 4714 of the half-lines 4707, 4708, 4709, 4710 and the bounding box4701 of the part accepting a part to be attached are calculated.

[0239] Then, in process 4503, the distances between the starting pointand the intersecting point, that is, the vertex 4703 to the intersectingpoint 4711, the vertex 4704 to the intersecting point 4712, the vertex4705 to the intersecting point 4713, the vertex 4706 to the intersectingpoint 4714, are calculated.

[0240] Further, in process 4504, the maximum value among the distancesbetween the starting point and the intersecting point, that is, thedistance between the vertex 4703 and the intersecting point 4711 in thecase of FIG. 47, is determined as a moving amount.

[0241]FIG. 48 shows a state where the part to be attached 4602 has beenmoved in the direction opposite to the attaching direction 4603 by themoving amount 4801 calculated in the process 4408.

[0242] As described above, the part to be attached can be placed in sucha position that the bounding boxes of the part to be attached and thepart accepting a part to be attached do not overlap with each other byusing the moving amount calculated through the process flow shown inFIG. 45.

[0243] Therefore, the part to be attached and the part accepting a partto be attached can be arranged separately from each other. By applyingthis process in the order of assembling procedure, an exploded view of awhole assembly can be automatically produced.

[0244] A further embodiment of the present invention will be describedbelow. FIG. 20 is a diagram showing the structure of an apparatus forproducing an exploded view, which is modified from that in FIG. 1, wherea program 2001 for inputting a direction of projection is added, theprogram 109 for moving a part to be attached is changed to a program2002 for moving a part to be attached, considering the direction ofprojection, and the program 110 for displaying an exploded view ischanged to a program 2003 for displaying an exploded view which displaysthe view in the direction of projection input from the program 2001 forinputting the direction of projection.

[0245] The program 2001 for inputting direction of direction ofprojection receives a vector of direction of projection from anoperator's instruction through the input unit 101 or from anotherprogram or central processing unit.

[0246] The program 2002 for moving a part to be attached considering thedirection of projection receives the vector of the direction ofprojection from the program 2001 for inputting the direction ofprojection, determines a moving amount of a part using the geometricaldata 105 of the part to be attached, the assembling process data 106 andthe vector of the direction of projection, changes the position of thepart read out from the geometrical data 105 and then writes it in thegeometrical data.

[0247]FIG. 21 is a diagram showing an embodiment of a program 2002 formoving a part to be attached considering a direction of projection. Aprogram 201 for sequentially reading-out a procedure reads outassembling procedures in the assembling process data area 106 one byone, and stores it into a memory area 202 for a part to be attached anda memory area 208 for storing an attaching direction.

[0248] The attaching direction 112 indicates the direction when a parthaving been attached, and is a unit vector. Let the vector be V_(a). Thememory 204 for a part having been attached stores a list of parts havingbeen attached in the steps of the procedure prior to a certain step ofthe assembling procedure.

[0249] A program 2101 for projecting to a plane having a normal in thedirection of projection receives a direction of projection vector V_(e)from the program 2001 for inputting the direction of projection, readsout an attaching direction vector V_(a) from the memory 208, andcalculates a projected vector V_(p) of the attaching direction vectorV_(a) with respect to the plane having the direction of projectionvector V_(e) as a normal using the following equation (3).

V _(p)=(V _(e) ×V _(a))/|V _(e) ×V _(a) |×V _(e)  (3)

[0250] The program 2102 for calculating the minimum value of a scalarproduct reads out the list of parts having been attached from the memory204 for a part having been attached, calculates the scalar products ofthe vertex coordinates of the parts and the projected vector V_(p), andcalculates the minimum value among them. Let the minimum value beD_(min).

[0251] The program 2103 for calculating the maximum value of a scalarproduct reads out a part to be attached from the memory area 202 for apart to be attached, extracts the vertex coordinates of the part fromthe geometrical data 105, and calculates the scalar product of thecoordinates and the projected vector V_(p) to obtain the maximum valueamong them. Let the maximum value be D_(max).

[0252] The program 2104 for changing the position of a part to beattached obtains a vector V for moving the part to be attached using thefollowing equation (4). Therein, the value D_(const) is a gap of certainvalue determined in advance.

V=(D _(min) −D _(max) −D _(const))×V _(a)/(V _(p) −V _(a))  (4)

[0253] Then, the position M_(o) of the part to be attached is fetchedfrom the geometrical data 105, and multiplied by the moving matrix M_(v)obtained from the moving vector V to obtain the value M which is writtenin the geometrical data 105 as a new position of the part. Thiscalculation is performed with the following equation (2).

M=M _(v) ×M _(o)  (2)

[0254] The program 208 for adding a part having been attached adds thepart to be attached which has changed its position into the memory area204 for a part having been attached.

[0255] Description will be made below on the principle of production ofthe exploded view with the program 2002 for moving a part to beattached, referring to a detailed example. FIG. 22 shows an assembledstate of two parts 2201 and 2202. Let the part 2201 be a part havingbeen attached and the part 2202 be a part to be attached.

[0256] A vector 2203 indicates the attaching direction V_(a) of the part2202. It is assumed that the direction of projection vector V_(e)extends perpendicularly to the plane of FIG. 22 from this side to theother side.

[0257]FIG. 23 shows the assembly in FIG. 22 as seen from the directionperpendicular to both the direction of projection vector V_(e) and theattaching direction vector V_(a). The vector 2301 is the direction ofprojection vector V_(e).

[0258] Since the direction vector V_(t) perpendicular to the plane ofFIG. 23 is perpendicular to the direction of projection vector V_(e) andalso perpendicular to the attaching direction vector V_(a), thedirection vector V_(t) is a normalized vector of the vector product ofthe direction of projection vector V_(e) and the attaching directionvector V_(a).

[0259] Therefore, the vector V_(t) can be obtained from the followingequation (5).

V _(t)=(V _(a) ×V _(a))/|V _(e) ×V _(a)|  (5)

[0260] Therein, it is assumed that the vector V_(t) is a vector 2302directed from this side to the other side of the plane of FIG. 23.

[0261] The projected vector V_(p) of the attaching direction vectorV_(a) to the plane having the direction of projection vector V_(e) asthe normal becomes the direction vector 2303 in FIG. 23.

[0262] Since the projected vector V_(p) 2303 is perpendicular to thevector V_(t) and also perpendicular to the direction of projectionvector V_(e), the projected vector is calculated as the vector productof the vectors V_(t) and V_(e).

[0263] However, since the vectors V_(t) and V_(e) cross with each otherat right angle, there is no need to normalize the vector product.Summarizing the above, the projected vector V_(p) can be obtained by thefollowing equation (6).

V _(p) =V _(t) ×V _(e)=(V _(e) ×V _(a))/|V _(e) ×V _(a) |×V _(e)  (6)

[0264] By the program 2102 for calculating the minimum value of a scalarproduct, the minimum value of the scalar product of the vertexcoordinates of the part having been attached 2201 and the projectedvector 2303 is obtained.

[0265] In the case of FIG. 22, the scalar product of the vertexcoordinate 2304 and the projected vector becomes a minimum as shown inFIG. 23, and the value is a magnitude as indicated by the arrow 2305.

[0266] On the other hand, by the program 2103 for calculating themaximum value of a scalar product, the maximum value of the scalarproduct of the vertex coordinates of the part to be attached 2202 andthe projected vector 2303 is obtained.

[0267] In the case of FIG. 22, the scalar product of the vertexcoordinate 2306 and the projected vector 2303 becomes the maximum asshown in FIG. 23, and the value is a magnitude indicated by the arrow2307. By subtracting the maximum value 2307 from the minimum value 2305results in a value indicated by the arrow 2308. By subtracting a pre-setconstant value 2309 from the value 2308, a vector 2310 is obtained.

[0268] Since the vector 2310 is a moving amount of the projected vector,it is necessary to obtain a moving amount which is in the attachingdirection and of which the result projected on the projected vector 2303becomes the vector 2310.

[0269] Such a moving amount can be obtained by dividing the movingamount 2310 in the projected direction by the scalar product of theprojected vector 2303 and the attaching direction vector 2203. By doingso, the moving amount 2311 can be calculated.

[0270] As the part to be attached 2202 is moved in parallel to theattaching direction 2203 by the moving amount 2311, the feature becomesas shown in FIG. 24, and it is possible to obtain an exploded view inwhich the part having been attached 2201 and the part to be attached2202 are separated from each other, as shown in FIG. 25. FIG. 26 is aflow diagram showing the process of the program for moving a part to beattached while considering the direction of projection.

[0271] In process 2601, a direction of projection vector is read outfrom the program for inputting the direction of projection. In process2602, a part to be attached in the step of the first procedure in theassembling process data is set as a part having been attached.

[0272] In process 2603, the process 2604 to process 2610 aresequentially repeated for each of the second procedure step to the finalprocedure step. In process 2604, a part to be attached and an attachingdirection in the procedure step now are read out from the attachingprocedure data.

[0273] In process 2605, it is checked whether the direction ofprojection and the attaching direction are parallel to each other ornot. If they are parallel, it is considered as an error, since thevector product becomes zero. In process 2606, the projected attachingdirection is calculated using the above equation (6).

[0274] In process 2607, all vertex coordinates of the part to beattached are read out from the geometrical data, and the scalar product,of each of the vertex coordinates and the projected attaching direction,and the attaching direction are calculated, and the maximum value isobtained among the values.

[0275] In process 2608, all vertex coordinates of the part having beenattached are read out from the geometrical data, and the scalar product,of each of the vertex coordinates, and the projected attaching directionare calculated, and the minimum value is obtained among the values.

[0276] In process 2609, the part to be attached is moved by the vectorwhich is obtained by subtracting the maximum value and a certain valuefrom the minimum value and by multiplying the attaching direction to theresult. The moving vector V can be obtained using the following equation(4).

V=(D _(min) −D _(max) −D _(const))×V _(a)/(V _(p) ·V _(a))  (4)

[0277] where D_(min) is the minimum value obtained in process 2608,D_(max) is the maximum value obtained in process 2607, D_(const) is aconstant value for gap, V_(a) is the attaching direction vector read outin process 2604, V_(p) is the projected attaching direction vectorobtained in process 2606.

[0278] In process 2610, the part to be attached, which was brought intothe disassembled state by the moving of the part, is added to the parthaving been attached.

[0279] Although in the embodiment the coordinates of vertexes are usedin the calculation of the scalar products with the projected vector, ina case of a curved surface, the coordinates of the control points of thecurved surface may be used in the calculation together with thecoordinates of the vertexes.

[0280] Further, the coordinates of the vertexes of a bounding box as apolyhedron containing the geometry of a part may be used instead ofusing the vertexes or the control points.

[0281]FIG. 27 shows the detailed construction 2701 of a furtherembodiment of a program 109 for moving a part to be attached in FIG. 1and FIG. 2.

[0282] A program 201 for sequentially reading-out a procedure reads outassembling procedures in the assembling process data area 106 one byone, and stores them into a memory area 202 for a part to be attachedand a memory area 208 for storing the attaching direction.

[0283] The attaching direction 112 indicates the direction when a partto be attached is attached to a part having been attached, and is a unitvector. Let the vector be V_(a). The memory 204 for a part having beenattached stores a list of parts having been attached in the steps of aprocedure prior to a certain step of the assembling procedure.

[0284] A program 2702 for detecting a contact surface reads out a partto be attached from the memory area 202 for a part to be attached, andreads out a part having been attached from the program 204 for a parthaving been attached, and detects the contact surface between the partto be attached and the part having been attached by referring to thegeometrical data 105.

[0285] The program 205 for calculating the minimum value of a scalarproduct reads out the contact surface between the part to be attachedand the part having been attached from the program 2702 for detecting acontact surface, calculates the scalar products of the vertexcoordinates of the contact surface and the attaching direction, andcalculates the minimum value among them.

[0286] Let the minimum value be D_(min). The program 206 for calculatingthe maximum value of a scalar product reads out a part to be attachedfrom the memory area 202 for a part to be attached, and extracts thevertex coordinates of the part from the geometrical data 105, andcalculates the scalar product of the coordinates and the attachingdirection to obtain the maximum value among them. Let the maximum valuebe D_(max).

[0287] The program 207 for changing the position or a part to beattached obtains a vector V for moving the part to be attached using theabove equation (1).

[0288] Then, the position M_(o) of the part to be attached is fetchedfrom the geometrical data and multiplied by the moving matrix M_(v)obtained from the moving vector V to obtain the value M, which iswritten in the geometrical data as a new position of the part. Thiscalculation is performed with the above equation (2).

[0289] The program 208 for adding a part having been attached adds thepart to be attached, which has changed its position, into the memoryarea 204 for a part having been attached.

[0290] Description will be made below of the principle of production ofan exploded view with the program 2002 for moving a part to be attached,referring to a detailed example.

[0291]FIG. 28 shows an assembled state of two parts 2801 and 2802. Letthe part 2801 be a part having been attached, and the part 2802 be apart to be attached. A vector 2803 indicates the attaching direction ofthe part 2802.

[0292] Firstly, the program 2702 for detecting a contact surface detectsthe contact surface between the part 2801 of a part having been attachedand the part 2802 of a part to be attached, and obtains a planar contactsurface 2901 and a contact surface 2902 of the part 2802, as shown inFIG. 29.

[0293] By the program 205 for calculating the minimum value of a scalarproduct, the minimum value of the scalar product of the vertexcoordinates of the surface 2901 and the surface 2902 and the attachingdirection 2803 are obtained.

[0294] In the case of FIG. 29, the scalar product of the vertexcoordinate 3001 of the surface 2901 and the direction vector 2803becomes a minimum, as shown in FIG. 30, and the value has a magnitudeindicated by the arrow 3002.

[0295] On the other hand, by the program 206 for calculating the maximumvalue of a scalar product, the maximum value of the scalar product ofthe vertex coordinates of the part to be attached 2802 and the attachingdirection 2803 are obtained.

[0296] In the case of FIG. 29, the scalar product of the vertexcoordinate 3003 and the attaching direction 2803 become a maximum, asshown in FIG. 30, and the value has a magnitude indicated by the arrow3004. Then, a moving amount 3006 is obtained by subtracting the maximumvalue 3004 and a per-set constant value 3005 from the minimum value3002.

[0297] As the part to be attached 2802 is moved in parallel to theattaching direction 2803 by the moving amount 3006, it is possible toobtain an exploded view in which the part having been attached 2801 andthe part to be attached 2802 are separated from each other, as shown inFIG. 31.

[0298] Although in the embodiment the coordinates of vertexes of thecontact surface are used in the calculation of the scalar products withthe projected vector, the coordinates of the control points of thecurved surface may be used in the calculation together with thecoordinates of the vertexes.

[0299] Further, by obtaining a bounding box containing the contactsurface in advance, the coordinates of the vertexes of the bounding boxmay be used instead of using the vertexes or the control points.

[0300] Furthermore, by integrating the program for detecting a contactsurface in the program 2002 for moving a part to be attached whileconsidering a direction of projection, as shown in FIG. 21, the vertexesof a contact surface may be used in the calculation of the minimum valueof the scalar product instead of using the vertexes of parts.

[0301]FIG. 32 shows the structure of a further embodiment according tothe present invention. The program in FIG. 32 is supplemental by addinga program 3201 for producing a corresponding line to the program 2701for moving a part to be attached having the program for detecting acontact surface, as shown in FIG. 27.

[0302] The program 3201 for producing a corresponding line produces acorresponding line indicating the correspondence between the contactsurface of a part to be attached and the contact surface of a parthaving been attached. The operation of the program 3201 for producing acorresponding line will be described, referring to FIG. 33 and FIG. 34.

[0303] The program 3201 for producing a corresponding line receives dataof a contact surface from the program 2702 for detecting a contactsurface, and calculates, for example, its center of gravity.

[0304] In the example of FIG. 33, data of a contact surface 2901 istransmitted from the program 2702 for detecting a contact surface toobtain a center of gravity 3301. A moving vector 3006 of a part to beattached is received from the program 207 for changing the position of apart to be attached to obtain a point 3302, where the center of gravity3301 of the contact surface is moved by the moving vector 3006. And, aline segment connecting between the point 3301 and the point 3302 isadded to the geometrical data 105.

[0305] When the line segment is displayed, a corresponding line 3401indicating the correspondence between the contact surface of a part tobe attached and the contact surface of a part having been attached isdisplayed in an exploded view as shown in FIG. 34.

[0306] Although the corresponding line 4301 in FIG. 34 is expressed by achain line, it may be expressed by a line having a different color or adifferent width from the line for showing the geometry of the part.

[0307] Although, in the aforementioned embodiments, a constant value forgap D_(const) is used in calculating the moving vector of a part to beattached, the gap may be calculated from a direction of projectionvector and an attaching direction vector.

[0308]FIG. 35 shows examples of a case where the gap between a part tobe attached and a part having been attached is a constant and a casewhere the gap is calculated from a direction of projection vector and anattaching direction vector.

[0309] Let the direction of projection be a vector 3501. When a part3502 and a part 3503 are joined in an attaching direction 3504 to eachother, the gap becomes the distance indicated by arrow 3505.

[0310] In this case, since the attaching direction 3504 is perpendicularto the direction of projection 3501, the apparent gap 3507 seen from thedirection of projection 3501 is equal to the actual gap 3505. However,when a part 3508 and a part 3509 are joined in an attaching direction3510 to each other, the gap becomes the distance indicated by arrow3511.

[0311] Although the gap 3511 is equal to the gap 3505, the apparent gap3512 seen from the direction of projection 3501 is smaller than the gap3507.

[0312] When the apparent gap becomes small, it looks as if the partsapproach too close to observe an exploded view with ease. The apparentgap becomes small as the attaching direction approaches the parallel tothe direction of projection. Therefore, the gap D_(const) is calculatedby using, for example, the following equation (7). $\begin{matrix}{D_{const} = \frac{C}{1 - \left( {v_{a} \cdot V_{a}} \right)^{2}}} & (7)\end{matrix}$

[0313] Therein, V_(a) is the attaching direction vector, V_(e) is thedirection of projection vector, C is a positive constant. For example,in FIG. 35, when a part 3513 and a part 3514 are attached to each otherin an attaching direction 3515, the apparent length 3517 of a vector3516 having a unit length parallel to the attaching direction becomesthe value of the denominator in the above equation (7) since the length3518 is the absolute value of the scalar product of V_(a) and V_(e).

[0314] By calculating the gap 3519 using the above equation (7), theapparent gap 3520, therefore, can be kept constant independently of therelationship between the attaching direction and the direction ofprojection.

[0315] There are some cases where an assembly cannot be assembled byattaching parts one by one due to the structure of the assembly, but theassembly can be assembled by first assembling a sub-assembly composed ofplural parts and then attaching it to a part. An embodiment in a case ofa sub-assembly will be described below.

[0316]FIG. 49 shows such an example of assembly. The assembly in FIG. 49is composed of three parts 4901, 4902, 4903. Such an assembly cannot beassembled in the order of the parts 4901, 4902, 4903. Firstly, the part4901 is placed, and the part 4902 and the part 4903 are assembled andthen the assembled parts are attached to the part 4901.

[0317] The assembling process data for such an assembly can be expressedby, for example, FIG. 50. The level of a part indicates the depth from aroot 5101 when the assembling relationship of the assembly is expressedby a tree structure, as shown in FIG. 51.

[0318] Therefore, the level for the part 4901 is 1, and the level forthe parts 4902 and 4903 is 2, and the level of the sub-assemblyassembled with the parts 4902 and 4903 is 1.

[0319]FIG. 52 is a flow chart showing an embodiment of the method ofproducing an exploded view from assembling process data having asub-assembly in the middle of the assembling procedure according to thepresent invention. In process 5201, geometrical data is input, thegeometrical data being composed of geometries of parts forming anassembly and part positions in the state of completion of assembling.

[0320] In process 5202, assembling process data is input, the assemblingprocess data being composed of assembling procedures, parts to beattached, attaching directions and levels of a part, as shown in FIG.50. In process 5203, a part to be attached in the step of the firstprocedure in the assembling process data is set to a list for a partaccepting a part to be attached. In process 5204, the process 5205 tothe following are sequentially repeated for each of the second part tobe attached to the final part to be attached. In process 5205, it isjudged whether the part to be assembled is the first part for thesub-assembly or not.

[0321] For example, in a case where sub-assembly is expressed by thelevel of a part, as shown in FIG. 50, if the level of a part to beattached is larger than the level of the immediately preceding part tobe attached, the part to be attached is the first part for thesub-assembly.

[0322] Therefore, in process 5205, the processing is branched to thedirection of YES to perform processes 5206, 5207. If the level of a partto be attached is smaller than the level of the preceding part to beattached, the processing is branched to the direction of NO to performprocesses 5208 to 5211.

[0323] In process 5207, the contents of a list of parts accepting a partto be attached now is pushed to the stack for storing parts accepting apart to be attached. In process 5207, a list of parts accepting a partto be attached is emptied once and the part to be attached now is set inthe list of parts accepting a part to be attached.

[0324] In process 5206 and process 5207, the information on the partshaving been attached is temporary stored, and thereby the preparation toproduce an exploded view for assembling the sub-assembly is completed.

[0325] In process 5208, the arrangement positions of the parts to beattached in a disassembled state are calculated using the geometricaldata of the part to be attached and the parts accepting a part to beattached, and the attaching directions of the part to be attached. Themethod of calculation is the same as that described above.

[0326] In process 5209, the parts to be attached are arranged in thearrangement positions calculated in the process 5208. In process 5210,it is judged whether the part to be attached now is the final part forassembling the sub-assembly or not. If it is the final part, theprocessing is branched to process 5211. If the part to be attached nowis not the final part for assembling the sub-assembly, the processing isbranched to the direction of NO and goes to process 5212.

[0327] For example, in a case where the sub-assembly is expressed by thelevel of a part, as shown in FIG. 50, when the level of the part to beattached now is larger than the level of the previous part to beattached, the part to be attached now is the final part for assemblingthe sub-assembly.

[0328] In process 5211, the parts accepting a part to be attached pushedin the stack for storing part-accepting-part to be attached at the lastare popped, and the group of the popped parts are set in the list forpart-accepting-part to be attached now.

[0329] In process 5212, the part to be attached is added to the list forpart-accepting-part to be attached. After completion of applying theprocess 5205 to all the parts to be attached in the assembling processdata by process 5204, the geometrical data after the move is displayedin process 5213. Thereby, an exploded view is displayed.

[0330] The stack for storing part-accepting-part to be attached isrealized by, for example, a table composed of columns of a stack pointer5301, a name of part 5303 and a number of parts 5302, as shown in FIG.53. The stack pointer 5301 stores the number of lists forpart-accepting-part to be attached stored now in the stack.

[0331] When a list for part-accepting-part to be attached is newlypushed, the value of the stack pointer is incremented by one and a listfor the number of parts and the name of a part is stored in a row havingthe value of the stack pointer after addition as the index, in thiscase, in the third row 5304.

[0332] On the contrary, when a list for part-accepting-part to beattached is popped, a list for the part in a row having the value of thestack pointer 5301 is popped and the row is deleted from the table, andthe value in the stack pointer is decremented by one.

[0333] In the case of FIG. 53, since the value in the stack pointer is2, the name of part C is popped from the second row 5305 and the row5305 is deleted, and the value in the stack pointer 5301 is decrementedby 1 and becomes 1. Thereby, a list for a name of part stored in thelast place can be obtained in the first place.

[0334] The feature of producing an exploded view, in a case where theprocess in FIG. 52 is applied to the data in FIG. 49 and the assemblingprocess data in FIG. 50, will be described, referring to the figures. Inprocesses 5201, 5202, geometrical data of FIG. 49 and assembling processdata of FIG. 50 are input.

[0335] By executing process 5203, a part to be attached 4901 in the stepof the first procedure in the assembling process data in FIG. 50 is setto a list for part-accepting-part to be attached.

[0336] In process 5205, it is judged whether the nextpart-to-be-assembled 4903 is the first part for the subassembly or not.The level for the preceding part to be assembled 4901 is 1 and the levelfor the part to be assembled now 4903 is 2.

[0337] Since the level for the part to be assembled now is lager thanthe level for the preceding part to be assembled, it is understood thatthe part to be assembled now is the first part for assembling asub-assembly.

[0338] And, in process 5206, the contents of the list forpart-accepting-part to be attached, in this case, the part 4901, arestored in the stack for part-accepting-part to be attached. And, inprocess 5204, the part to be attached now 4903 is set as a partaccepting a part to be attached.

[0339] Then, the processes following the process 5205 are executed forthe part to be attached 4902 with the loop in process 5204. Firstly, inprocess 5205, it is checked whether it is the beginning of assembling asub-assembly or not. The level for the preceding part to be assembled4903 and the level for the part to be assembled now 4902 are 2 andtherefore the same.

[0340] Therefore, since the part to be assembled now is not the firstpart for assembling the sub-assembly, the processing is branched to thedirection of NO and proceeds to process 5208. Therein, an arrangementposition in a disassembled state is calculated using the geometricaldata of the part to be attached 4902 and the part-accepting-part to beattached 4903 and the attaching direction data for the part to beattached 4902.

[0341]FIG. 54 shows the state where the part 4902 is moved in process5209 based on the calculated result. Next, in process 5210, it is judgedwhether it is the end of assembling the sub-assembly or not. Since thelevel of the part 4902 is 2 and the level of the next part to beattached 4902+4903 is 1, the part 4902 is the final part for thesub-assembly.

[0342] Therefore, the processing is branched to the direction of YES,and the part 4901 is popped from the stack for part-accepting-part to beattached and set in the list for part-accepting-part to be attached.Then, the processes following the process 5205 are executed for the partto be attached 4902+4903 with the loop in process 5204.

[0343] The part to be attached 4902+4903 indicates assembling throughattaching the two parts 4902 and 4903 together. In process 5205, thelevel of the part 4902+4903 is 1 and the level of the preceding part tobe attached 4902 is 2.

[0344] Therefore, the part 4902+4903 is not the first part forassembling the sub-assembly. Therefore, the processing is branched tothe direction of NO and proceeds to process 5208. An arrangementposition in a disassembled state is calculated.

[0345] Therein, the parts 4902 and 4903 having the positions andgeometrical data in the disassembled state calculated in the precedingloop as parts to be attached and the part 4901 as a part-accepting-partto be attached.

[0346] In process 5209, the parts 4902 and 4903 are moved. FIG. 55 showsthis state. By doing the above, an exploded view having assemblingprocess data for assembling of a sub-assembly can be produced.

[0347] As for assembling process data for assembling a sub-assembly,although description has been made of an embodiment where thesub-assembly is expressed by the level of a part, as shown in FIG. 50,it may be possible that a flag indicating the presence and absence ofthe assembling of a sub-assembly is provided in assembling process data,as shown in FIG. 56, and the flag is set to 0 when there is noassembling of a sub-assembly, while the flag is set to 1 when there isassembling of a sub-assembly.

[0348] The assembling procedure for assembling a subassembly isexpressed by preparing other assembling process data, as shown in FIG.56. The correspondence between the part to be attached 4904 withassembling of a sub-assembly in FIG. 56 and the assembling process datafor assembling a sub-assembly can be performed by storing the name of asub-assembly in the assembling process data and by checking theagreement of the part to be attached with the name of the sub-assembly.

[0349] In a case of such expression of the assembling process data, thejudgement of the beginning of assembling a subassembly is performed bydetermining whether the flag is 1 or not. And, assembling process datahaving the same name as the name of a part to be attached is retrieved,and the part to be attached retrieved is set as a newpart-accepting-part to be attached.

[0350] The judgement of the end of the assembling of a subassembly isperformed by determining whether the processing reaches the finalprocess of the assembling process data or not.

[0351] The feature of producing an assembling procedure for an assemblyin the apparatus for producing an exploded view shown in FIG. 1 will bedescribed below, using an example. FIG. 36 shows the structure of theassembly to be used in this explanation. The assembly is composed of apart 3601, a part 3602, a part 3603 and a part 3604.

[0352]FIG. 37 shows an example of an assembling procedure input by anoperator. In this assembling procedure, the part 3601 is firstly placed,next the part 3602 is attached from an upper side, the part 3603 isattached from the side, and finally the part 3604 is attached from anupper side. An exploded view for the above case is produced by using theapparatus for producing an exploded view according to the presentinvention, and FIG. 38 is obtained.

[0353] The operator looks at FIG. 38 and understands that, when the part3603 is attached from the side, the part 3601 prevents the part 3603from being attached. Since the part 3603 is attached to the part 3601only from the upper side, the operator gives an instruction to theprogram 109 for inputting an assembling procedure to change theattaching direction 3901 of the part 3603 to provide for attaching fromthe upper side, as shown in FIG. 39.

[0354] Based on the assembling procedure of FIG. 39, an exploded view isproduced by operating the program 109 for moving a part to be attached,and displayed by the program 110 for displaying an exploded view to getFIG. 40. Looking at FIG. 40, the operator understands that since thepart 3603 is attached after attaching the part 3602, the part 3602prevents the part 3603 from being attached.

[0355] Therefore, the operator gives an instruction to the program 108for inputting an assembling procedure to place the step of attachingprocedure 4101 of the part 3603 before the step of attaching procedure4102 of the part 3602 as seen in FIG. 41.

[0356] Based on the assembling procedure of FIG. 41, an exploded view isproduced by operating the program 109 for moving the part to beattached, and he exploded view is displayed by the program 110 to getFIG. 42. Looking at FIG. 42, the operator understands that there is notrouble such interference between parts during assembling.

[0357] Therewith, a correct assembling procedure can be obtained byrepeatedly inputting assembling procedures and forming exploded views.

[0358]FIG. 58 shows a further embodiment of a method of changing anassembling procedure using an exploded view according to the presentinvention. In process 5801, geometrical data is input, the geometricaldata being composed of geometries of parts composing an assembly ofwhich an exploded view is produced and positions of the parts in a stateof completion of assembling.

[0359] In process 5802, assembling process data composed of assemblingprocedures, parts to be attached and attaching directions is input. Inprocess 5803, positions of parts in a disassembled state are calculatedusing the assembling geometrical data and the assembling process data.

[0360] In process 5804, the geometries of parts are displayed in thepositions of parts in the disassembled state calculated in process 5803to display an exploded view. In process 5805, the operator is askedwhether there is any change in assembling procedure.

[0361] The operator inputs presence or absence of the necessity ofchange using the input unit, such as a keyboard or mouse. If there is noneed for a change, the processing to change the procedure is completed.If there is any need to effect a change, process 5806 is executed. Inprocess 5806, the instruction for changing the procedure is requested ofthe operator.

[0362] The operator inputs the parts required change and the contents ofthe change using the key-board or the mouse. When instructing pluralparts to be changed, in process 5807, the assembling procedure ischanged based on the changing instruction input by the operator. As forthe changing instruction, there is an instruction, for example, tospecify two parts and exchange the assembling orders of the parts.

[0363] As another example, there is an instruction to sequentiallyspecify plural parts to be changed and then to insert procedures in thespecified order before or after parts specified separately.

[0364]FIG. 59 to FIG. 63 show an embodiment of the method of editing theassembling procedure shown in FIG. 58. FIG. 59 shows an example ofgeometrical data input in process 5801.

[0365] In this example, the assembly is composed of four parts 5901,5902, 5903, 5904.

[0366]FIG. 60 shows an example of assembling process data input inprocess 5802. The assembling process data expresses an assemblingprocedure in which firstly the part 5901 is placed, next the part 5902is attached from the direction of the −Y axis, then the part 5903 isattached from the direction of the −Y axis, and finally the part 5904 isattached from the direction of the −Y axis.

[0367]FIG. 61 shows an exploded view produced by the process 5801 andthe process 5804. A menu 6101 for changing the assembling procedure isdisplayed by process 5805, and the operator selects a command 6102 forexchanging parts using, for example, a mouse.

[0368] By doing so, control shifts to process 5806, an instruction forchanging is input. In a case of, for example, exchanging, two parts 5903and 5904 are specified.

[0369] Then, the orders of the part 5902 and the part 5903 in the datafor the assembling procedure are exchanged by the process 5807.

[0370]FIG. 62 shows the data for the assembling procedure after thechange. In process 5803, arrangement positions are calculated using thedata for the assembling procedure after the change and the geometricaldata input in process 5801. The result is displayed in process 5804, asshown in FIG. 63. After displaying the exploded view after the change, amenu 6101 for changing the assembling procedure is again displayed byprocess 5805.

[0371] Therein, as the operator selects the command 6103 for moving apart, a changing instruction is input from process 5806. In a case ofthe moving command, a part to be moved in order and a part accepting themoved part are specified on the exploded view, and whether the movedpart is inserted before or after the accepting part is instructedthrough the menu.

[0372] For example, in FIG. 63, the part 5903 and the part 5904 arespecified in this order as parts to be changed in order, and then thepart 5902 is specified as a part accepting the moved part. Then “before”is selected through the menu 6301. In process 5807, the part 5903 andthe part 5904 in this order are moved before the part 5902 according tothe instruction input in process 5806, and, as a result, the assemblingprocess data shown in FIG. 64 is obtained.

[0373] Based on the data for the assembling procedure in FIG. 64 and thegeometrical data and the arrangement data in FIG. 59, arrangementpositions are calculated in process 5803. And, in process 5804, theresultant data is displayed to obtain an exploded view, as shown in FIG.65.

[0374] In process 5805, the menu 6101 is displayed. If the operatordetermines that there is no need to change the assembling procedurefurther, the end 6104 is selected to complete the editing processing.

[0375] As described above, by editing an assembling procedure using anexploded view, it becomes easy to indicate a part since parts aredisassembled and to understand the assembling procedure since parts arearranged in an assembling procedure order. Therefore, it is easier tochange the assembling procedure order based on an exploded view than tochange the assembling procedure order based on an assembly in a completeassembled state.

[0376] According to the aforementioned embodiments of the presentinvention, there is an effect to decrease man-power to produce anexploded view since the exploded view can be automatically produced solong as geometrical data and assembling process data are available.

[0377] By using vertex coordinates of a bounding box containing thegeometry of a part instead of using coordinates of vertexes or controlpoints of the geometry of part, it is possible to make an exploded viewin a short time since calculations of six scalar products, at the most,of vertex coordinates and attaching direction vectors per part aresufficient.

[0378] By using the direction of projection of an exploded view incalculating the required amount of movement of a part to be attached, itis possible to produce an exploded view which is easily understandable,since it is possible to produce the view where the disassembled parts donot apparently overlap with each other in the exploded view.

[0379] By using the direction of projection of an exploded view incalculating the amount of movement a part to be attached, it is possibleto produce an exploded view which is easily understandable, since it ispossible to produce the view where the disassembled parts are apparentlyspaced by the same distance from one another in the exploded view.

[0380] In accordance with this invention, it is possible to produce anexploded view which is easily understandable, since it is possible toconnect the surfaces to be in contact with each other in an assembledstate with a line-segment in the exploded view.

[0381] Thus, it is possible to easily make a plan for an assemblingprocedure in the manufacturing of products, since less effort isexpended in inputting assembling process data for displaying an explodedview, detecting a defective condition by looking at the exploded viewand correcting the assembling process data, and consequently theexploded view can be easily produced.

[0382] According to the present invention, the man-power for producingan exploded view can be decreased by automatically producing an explodedview and by eliminating the work to move a part by instructing themoving direction and the moving amount, part by part, which has beenperformed by an operator in the past.

[0383] A further embodiment of the present invention will be describedbelow, referring to the accompanying drawings.

[0384]FIG. 66 is a flow-chart showing the process procedure of a methodfor producing animation of an assembling procedure according to thepresent invention. Firstly, in process 6601, geometrical data for eachpart in an assembled model of a product is input.

[0385] Next, in process 6602, assembling procedure data is input. Theassembling procedure data consists of data sets each specifying a partto be attached and an attaching direction, and the order of inputtingthe data sets is the order of attaching.

[0386] Then, in process 6603, operating data is produced from thegeometrical data input in process 6601 and the assembling procedure datainput in process 6601. Finally, in process 6604, an animation isproduced using the operating data produced in process 6603 as inputparameters and the animation of the assembling procedure is displayed.

[0387]FIG. 67 shows the structure of an embodiment of an apparatus forproducing an animation of an assembling procedure according to thepresent invention. An input unit 6701 is composed of a machine takinginstructions from an operator, such as through key-boards and a mouse,and a machine receiving data from another computer, such as acommunication apparatus and a floppy disk drive.

[0388] A central processing unit 6702 is constructed with a CPU whichcalculates data in a memory 6703 according to a program stored in thememory 6703, and exchanges data between the input unit 6701 and anoutput unit 6704.

[0389] The memory 6703 is constructed with a RAM, a magnetic disk and soon, and stores programs and data. The output unit 6704 is constructedwith a display unit, such as a CRT, and machines to transfer data toanother computer, such as a communication apparatus and a floppy diskdrive.

[0390] The memory 6703 stores geometrical data 6705, assemblingprocedure data 6706, operating data 6707, a program 6708 for inputtinggeometrical data, a program 6709 for inputting assembling proceduredata, a program 6710 for producing operating data, and a program 6711for producing animation.

[0391] The geometrical data 6705 is geometrical information for anassembly. The assembling procedure data 6706 is composed of data setseach consisting of a part to be attached 6712 and an attaching direction6713 in the assembling order. The operating data 6707 is composed ofparts to be attached 6714, data indicating a kind of operation 6715,data indicating an operating direction 6716, data indicating an amountof operation 6717, and data indicating time period 6718.

[0392] The program 6708 for inputting geometrical data fetchesgeometrical information of an assembly from the input unit 6701 andstores it as the geometrical data 6705. The program 6709 for inputtingan assembling procedure fetches parts to be attached and attachingdirections from the input unit 6701 in the assembling order and storesthem as the assembling procedure data 6706.

[0393] The program 6710 for producing operating data automaticallyproduces operating data for each part to be attached using theassembling procedure data 6706 and stores it as the operating data 6707.

[0394] The program 6711 for producing animation produces animation datausing the geometrical data 6705 and the operating data 6707 and outputsthe animation data to the output unit 6704. Inputting of the geometricaldata 6705 and the assembling procedure data 6706 is performed by anoperator with use of a mouse and a key-board, or through a network or afloppy disk in a case of data prepared by another central processingunit.

[0395]FIG. 68 is a flow-chart showing the detailed process procedure ofthe process 6603 for producing operating data shown in FIG. 66. Inprocess 6801, the process 6802 to process 6804 are applied for each ofthe second procedure step of the assembling procedure to the finalprocedure step.

[0396] Therein, the operating data for the first procedure step need notbe produced since the first procedure step is to set a part at thebeginning and it is out of the scope of the animation. In process 6802,data indicating a part to be attached and data indicating the attachingdirection are read out from the procedure data.

[0397] Next, in process 6803, detaching operating data is produced fromthe read-out data indicating the part to be attached and the attachingdirection. The detaching operating data is data for preforming ananimation in which the part to be attached is moved from a position inan assembled state along a direction opposite to the attaching directionby a certain distance.

[0398] Next, in process 6804, assembling operating data is producedusing the data indicating the part to be attached and the attachingdirection which has been read out. The assembling operating data is datafor performing an animation in which the part to be attached is movedfrom the position in process 6803 to the assembled state along theattaching direction.

[0399] As described above, in process 6703 for producing operating data,the data for a detaching operation and the data for an assemblingoperation for each of the parts to be attached are produced.

[0400]FIG. 69 shows the construction of an apparatus for executing aprocess for producing operating data. A program 6901 for sequentiallyreading-out a procedure reads out assembling procedure steps in theassembling procedure data 6906 one by one, and stores it into a memoryarea 6902 for a part to be attached and a memory area 6903 for anattaching direction. The attaching direction data 6713 indicates thedirection by which a part to be attached is attached to parts havingbeen attached, and is a unit vector.

[0401] A program 6907 for producing detaching operating data reads outthe data from the memory area 6902 for a part to be attached, and readsout the data indicating the attaching direction from the memory area6903, and produces detaching operating data consisting of the dataindicating the position of the starting point in an assembled state andthe position of the ending point which is spaced by predetermineddistance in the opposite direction to the attaching direction. Theoperating data produced is stored as the operating data 6707.

[0402] A program 6908 for producing detached operating data reads outthe data indicating a part to be attached from the memory area 6902, andreads out the data indicating the attaching direction from the memoryarea 6903, and produces attaching operating data in which the startingpoint is the ending point in the program 6907 for producing detachingoperating data and the ending point is the position of an assembledstate of the part to be attached. The operating data produced is storedas the operating data 6707.

[0403]FIG. 70 is a flow chart showing the detailed procedure of theprocess 6803 for producing detached operating data. In process 7001, thepart to be attached data read out from the assembling procedure data isset to the operating data 6707. In process 7002, the kind of operationis determined from the attaching direction data read out from theassembling procedure data, and is set to the operating data 6707.

[0404] In process 7003, the direction of operation is determined fromthe attaching direction, and set to the operating data 6707. In process7004, data indicating a predetermined distance is set to the operatingdata 6707. In process 7005, the starting time is set as “0.01” and theending time is set as a certain time, and they are set in the operatingdata 6707.

[0405]FIG. 71 is a diagram showing the structure of an apparatusexecuting the process for producing a detaching operation. A program7101 for setting a part to be attached reads out the data from thememory area 6902 for the part to be attached, and stores it to theoperating data 6707 as the part to be attached 6714.

[0406] A program 7102 for setting the kind of detaching operation readsout the data indicating the attaching direction from the memory area6903, and obtains the kind of operation corresponding to the kind ofattaching direction, and stores it in the operating data 6707 as a kindof operation 6715.

[0407] A program 7103 for setting the direction of the detachingoperation reads out the attaching direction data from the memory 6903,and stores the direction opposite to the attaching direction in theoperating data 6707 as the operating direction 6716. A program 7104 forsetting the amount of the detaching operation sets the amount ofmovement the part to be attached from an assembled state to a detachedstate.

[0408] In this embodiment, a constant is stored in the operating data6707 as the amount of operation 6717 independently of the sizes of theassembly and the part. A program 7105 for setting a detaching time setsthe time to detach each part from an assembled state in the directionopposite to the attaching direction. In this embodiment, the startingtime is set as “0.0” and the ending time is set as a constant value, andthey are stored in the time step 6718 in the operating data 6707.

[0409] Description will be made below using an example concerning thefeature where the operating data 6707 for detaching the part from anassembled state is produced by the process for producing operating datain FIG. 68 and the process for producing detaching operating data inFIG. 70.

[0410]FIG. 72 shows the geometry of an assembly used in the explanation.The structure of the assembly includes a part 7202 fixed to a plate 7201with a bolt 7203 and a part 7204 fixed to the plate 7201 with a bolt7205. The attaching direction of the part 7202 and the bolt 7203 isindicated by the directional vector 7206, and the attaching direction ofthe part 7204 is indicated by the directional vector 7207, and the bolt7205 is indicated by the directional vector 7208.

[0411]FIG. 73 is a diagram showing an example of the assemblingprocedure data for the assembly in FIG. 72. The column for a step of theprocedure 7301 shows a sequence of numbers corresponding to theassembling procedure, and assembling is performed in the order of thesenumbers.

[0412] The column of a part to be attached 7302 shows a part to beattached in each corresponding step of the procedure. Each number in thecolumn of a part to be attached in FIG. 73 corresponds to the symbolattached to each part in FIG. 72. The column for the attaching direction7303 shows a kind of attaching 7304 and direction value 7305.

[0413] The kind of attaching 7304 indicates a kind of movement of a partto be attached, and the indication “moving” means to move along astraight line. The direction value 7305 indicates a direction valuecorresponding to the kind of attaching 7304, and is expressed by adirectional vector when the kind 7304 is “moving”.

[0414] Each attaching direction in the column 7303 in FIG. 73corresponds to the symbol attached to each direction vector in FIG. 72.Since the first procedure step 7306 is a case of setting a part at thebeginning, there is no need to specify the attaching direction.

[0415] The processes 6802 to 6804 in FIG. 68 are repeated so as to beapplied by the process 6801 during each of the steps of the procedurefrom 2 to 5. The result of the process is shown in FIG. 74. Only theprocess 6803 for producing detaching operating data will be describedhere, but the process 6804 for producing assembling operating data willbe described later.

[0416] The process of the second step 7307 of the procedure will bedescribed. In process 6802, the assembling procedure in step 7307 of theprocedure is read out. And, in the process 6083, the data of thedetaching operation is produced. In process 7001 in FIG. 70, theidentification of the part to be attached 7202 as read out is stored inthe operating data.

[0417] Next, in process 7002, since the kind of attaching direction readout is “moving”, the kind of operation is stored in the operating dataas “straight moving”. Then, in process 7003, the direction opposite tothe directional vector 7206 read out is stored in the operating data.

[0418] The opposite direction vector is stored in the operating databecause the direction for detaching the part from an assembled state isopposite to the attaching direction.

[0419] Next, in process 7004, a constant distance (D_(const)) is storedin the operating data as the amount of operation. In the last step, inprocess 7005, the beginning of the time step is set to “0.0” and the endof the time step is set to a constant value (T_(const)) and these valuesare stored in the operating data.

[0420] The operating data shown in FIG. 74 is composed of a part to beattached 7401, a kind of operation 7402, an operating direction 7403, anamount of operation 7404 and a time step 7405. The data identifying thepart to be attached in the step of the procedure 7307 is the symbol7406.

[0421] Herein, the operating direction of the symbol 7406 is written as“−7206” since it is opposite to the attaching direction 7206. Byexecuting the steps 7308 to 7310 in the same manner as the stepprocedure 7307, the operating data for parts 7407, 7408, 7409 shown inFIG. 74 is produced.

[0422]FIG. 75 is a view showing the process displayed by an animationwhich is produced by using the operating data shown in FIG. 74 as inputdata and producing the animation of the process 6604 shown in FIG. 66.In this figure, the part to be attached in the assembled state is nothatched and the part to be attached after being detached is hatched.

[0423] The direction of animation is illustrated by the arrow. Theanimation by the operating data for 7406 in the step 7307 is themovement from the position of the part to be attached 7202 to theposition of the part to be attached 7501 in the animation direction7505.

[0424] The time step is 0 second in the position of the part to beattached 7202 and T_(const) second in the position of the part to beattached 7501. The amount of operation is the distance 7508 from thepart to be attached 7202 to the part to be attached 7501, and isD_(const). The animation by the operating data for 7407 in the step ofprocedure 7308 is the movement from the position of the part to beattached 7203 to the position of the part to be attached 7502 in theanimation direction 7505.

[0425] The time step is 0 second in the position of the part to beattached 7203 and T_(const) second in the position of the part to beattached 7502. The amount of operation is the distance 7508 from thepart to be attached 7203 to the part to be attached 7502, and isD_(const).

[0426] The animation by the operating data for 7408 in the step 7309 isthe movement from the position of the part to be attached 7204 to theposition of the part to be attached 7503 in the animation direction7506. The time step is 0 second in the position of the part to beattached 7204 and T_(const) second in the position of the part to beattached 7503. The amount of operation is the distance 7510 from thepart to be attached 7204 to the part to be attached 7503, and isD_(const).

[0427] The animation by the operating data for 7409 in the step 7310 isthe movement from the position of the part to be attached 7205 to theposition of the part to be attached 7504 in the animation direction7507. The time step is 0 second in the position of the part to beattached 7205 and T_(const) second in the position of the part to beattached 7504. The amount of operation is the distance 7511 from thepart to be attached 7205 to the part to be attached 7504, and isD_(const).

[0428] By seeing a change of all the parts to be attached over time, atthe time step of 0 second, the parts are in an assembled state, then allthe parts each move in the corresponding animation directions at onetime, and at time step of T_(const) the animation of the detachingoperation is completed.

[0429] The process for producing assembling operating data will bedescribed below. FIG. 76 is a flow chart showing the detailed procedureof the process 6804 for producing attached operating data. In process7601, the part to be attached data read out from the assemblingprocedure data is set to the operating data 6707. In process 7602, thekind of operation is determined from the attaching direction data readout from the assembling procedure data, and is set to the operating data6707.

[0430] In process 7603, the direction of operation is determined fromthe attaching direction and is set to the operating data 7607. Inprocess 7604, the amount of operation is set as a constant amount and isset to the operating data 6707. In step 7605, the starting time and theending time are obtained from the step so that the animation time is notoverlapped with that of any other part to be attached, and these valuesare set in the operating data 6707.

[0431]FIG. 77 is a flow chart showing the detailed procedure of theprocess 7605 shown in FIG. 76. In process 7701, the starting time (ST)is obtained by the following equation:

ST=T _(const)+(N _(o)−2)×T _(int)  (8)

[0432] where T_(const) is a constant value for time step, and is equalto the ending time of parts to be attached in the detaching operatingdata. N_(o) is the sequence number of the step of procedure. T_(int) isthe animation time during which a part to be attached changes from adetached state to an attached state.

[0433] In process 7702, the ending time (ET) is obtained by thefollowing equation:

ET=ST+T _(int)  (9)

[0434] In process 7703, the starting time and the ending time obtainedin process 7701 and process 7702 are stored in the operating data.

[0435]FIG. 78 is a diagram showing the structure of an apparatusexecuting the attaching operation. A program 7801 for setting a part tobe attached reads out the data of the part to be attached from thememory 6902, and stores it to the operating data 6707 as part to beattached 6714.

[0436] A program 7802 for setting the kind of assembling operation readsout the data of the attaching direction from the memory 6903, andobtains the kind of operation corresponding to the kind of attachingdirection, and stores it to the operating data 6707 as a kind ofoperation 6715.

[0437] A program 7803 for setting the direction of the assemblingoperation reads out the attaching direction data from the memory 6903,and stores the direction opposite to the attaching direction in theoperating data 6707 as the operating direction 6716.

[0438] A program 7804 for setting the amount of the assembling operationsets the amount of movement of the part to be attached from an assembledstate to a detached state, and stores it in the operating data 6707 asthe amount of operation 6717. A program 7805 for setting the assemblingtime step determines the time step so that the animation time does notoverlap with that of any other part to be attached, and stores it to thetime step 6719 in the operating data 6707.

[0439] Description will be made below using an example of the featurewhere the operating data 6707 for assembling the part from a separatedstate to an assembled state is produced by the process for producingoperating data in FIG. 68, the process for producing assemblingoperation data in FIG. 76 and the process for calculating a time step ofthe assembling operating data in FIG. 77.

[0440] The geometry of the assembly is the same in FIG. 72. A part 6201,a part to be attached 7501, a part to be attached 7502, a part to beattached 7503, and a part to be attached 7504 are in a disassembledstate. The processes 6802 to 6804 are repeated and applied by theprocess 6801 during each of the steps 2 to 5. The result of the processis shown in FIG. 79.

[0441] Only the process 6804 for producing assembling operating datawill be described here, since the process 6803 for producing detachingoperating data has been described above. The process of the second step7307 will be described.

[0442] In process 6802, the assembling procedure in step 7307 is readout. And, in process 6083, the data of the assembling operation isproduced. In process 7601 in FIG. 76, the part to be attached 7202 asread out is stored in the operating data.

[0443] Next, in process 7602, since the kind of attaching direction readout is “moving”, the kind of operation is stored in the operating dataas “straight moving”. Then, in process 7603, the directional vector 7206as read out is stored in the operating data. Next, in process 7604, aconstant distance (D_(const)) is stored in the operating data as theamount of operation. In the last step, in process 7605, a time step isdetermined and stored in the operating data.

[0444] As for determining the time step, the starting time step isdetermined by calculation, as described in process 7701, so as not tooverlap with the time step of the detaching operation and the time stepof a part to be attached, the assembling operation of which has beendetermined.

[0445] Since the step 7303 is for the first part of the assemblingoperation, that is, the sequence number of the step is “2”, the startingtime becomes T_(const). Next, the ending time is determined. The endingtime is the sum of the starting time and the attaching animation time(T_(int)). Then, the starting time and the ending time determined inprocess 7703 are stored in the operating data. The operating dataproduced in the step 7307 is shown in FIG. 79.

[0446] The assembling operating data of the part to be attached 7202 inthe step 7307 is indicated by the numeral 7901 in FIG. 79. Aftercompletion of production of the assembling operating data in the step7307, the step 7308 to the step 7310 are sequentially performed.

[0447] Here, only the determination of the time step will be described.The starting time of the step 7308 becomes T_(const)+T_(int) since thesequence number of the step of procedure is 3. This time is the same asthe ending time of the step 7307, that is, the assembling animation ofthe part to be attached 7203 starts after completion of the assemblinganimation of the part to be attached 7202. The ending time isT_(const)+2×T_(int).

[0448] Similarly, the starting time of the step 7309 isT_(const)+2×T_(int) and is the same as the ending time of the step 7308.The ending time is T_(const)+3×T_(int). The starting time of the step7310 is T_(const)+3×T_(int) and is the same as the ending time of thestep 7309. The ending time is T_(const)+4×T_(int). The assemblingoperating data of the steps 7308 to 7310 are indicated by the numerals7902, 7803, 7904 in FIG. 79.

[0449]FIG. 80 to FIG. 83 are views showing the process displayed by ananimation which is produced by using the operating data shown in FIG. 79as input data and producing the animation of the process 6604 shown inFIG. 66.

[0450] In these figures, for the purpose of explanation, the part to beattached in the detached state is hatched and the part to be attached inan assembled state is not hatched. The direction of animation isillustrated by the arrow.

[0451]FIG. 80 shows the animation process of the operating data 7901.This is an animation in which the part to be attached 7201 is moved inthe animation direction 8002 from the position 7501 at the starting timeT_(const) to the position 8001 at the ending time T_(const)+T_(int). Theamount of operation is the distance 8003 from the position 7501 to theposition 8001 is D_(const).

[0452]FIG. 81 shows the animation process of the operating data 7902.This is an animation in which the part to be attached 7203 is moved inthe animation direction 8102 from the position 7502 at the starting timeT_(const)+T_(int) to the position 8101 at the ending timeT_(const)2×T_(int). The amount of operation is the distance 8103 fromthe position 7502 to the position 8101 is D_(const).

[0453]FIG. 82 shows the animation process of the operating data 7903.This is an animation in which the part to be attached 7204 is moved inthe animation direction 8202 from the position 7503 at the starting timeT_(const)+2×T_(int) to the position 8201 at the ending timeT_(const)3×T_(int). The amount of operation is the distance 8203 fromthe position 7503 to the position 8201 is D_(const).

[0454]FIG. 83 shows the animation process of the operating data 7904.This is an animation in which the part to be attached 7205 is moved inthe animation direction 8302 from the position 7504 at the starting timeT_(const)+3×T_(int) to the position 8301 at the ending timeT_(const)+4×T_(int). The amount of operation is the distance 8303 fromthe position 7504 to the position 8301 is D_(const).

[0455] As described above, by producing assembling operating data, asshown in FIG. 79, an animation display can be obtained which showsmovement from a detached state to an assembled state for parts to beassembled in the sequence of the assembling procedure. Further, bycombining the detaching operating data shown in FIG. 74 and theassembling operating data shown in FIG. 79 to a set of data andperforming the process for producing animation of process 6604, anassembling animation starting from an assembled state can be obtained.

[0456] Another embodiment of the present invention will be describedbelow. FIG. 84 is a block diagram showing the construction of anapparatus for producing animation of an assembling operation where inthe construction of the apparatus for producing animation of theassembling operation shown in FIG. 67, a program 8401 for inputtingjointing data, jointing data 8402, and a table 8403 coping with aspecial operation for jointing are added, and the program 6710 forproducing operating data is changed to a program 8404 for producingoperating data with jointing data.

[0457] The program 8401 for inputting jointing data is responsive to aninstruction from an operator inputted via the input unit 6701 andjointing data from other programs and the computer. The jointing data8402 stores sets of a part to be attached 8405, a part accepting a partto be attached 8406, a method of jointing 8407 and a parameter 8408 ofdetailed data of the method 8407 of jointing for each of the parts to beattached.

[0458] The program 8404 for producing operating data with jointing dataproduces operating data for each of the parts to be attached from theassembling procedure data 6706 and reads out data from the jointing data8402, and produces operating data particularly for jointing by referringto the table 8403 providing for a special operation for jointing, andthen stores it as the operating data 6707. The table 8403 is a table forproviding correspondence between the method of jointing in the jointingdata and the operation of the method of jointing.

[0459]FIG. 85 shows an example of the table 8403. The methods ofjointing for assembling work, such as screw, welding, soldering and soon, are set in the column of jointing methods 8501, and the kinds of amovement of part to be attached, such as revolution, locking and so on,are set in the column of special operation 8502.

[0460]FIG. 86 is a functional diagram showing the construction of anembodiment of the program 8404 for producing operating data. A program6901 for sequentially reading-out a procedure reads out assemblingprocedure steps in the assembling procedure data 6906 one by one, andstores it into a memory area 6902 for a part to be attached and a memoryarea 6903 for storing an attaching direction.

[0461] A program 6907 for producing detaching operating data producesthe detaching operating data in which the starting point is the positionof an assembled state of the part to be attached and the ending point isthe position proceeding in the direction opposite to the attachingdirection read out from the memory area 6903. The operating dataproduced is stored as the operating data 6707.

[0462] A program 8601 for producing assembling operating data, to whichis added a special operation for jointing, produces the attachingoperating data in which the starting point is the ending point in theprogram 6907 and the ending point is the position of an assembled stateof the part to be attached. The operating data produced is stored as theoperating data 6707.

[0463] In addition to these, the program 8601 reads out the jointingdata 8402 and produces assembling operating data to which is added aspecial operation for jointing by referring to the table 8403, andstores the result to the operating data 6707.

[0464]FIG. 87 is a functional diagram showing the construction of anembodiment of the program 8601 for producing assembling operating dataincluding a special operation for jointing. The process from the program8701 for setting a part to be attached to the program 7805 for settingan assembling time step is the same as described in connection with FIG.78.

[0465] The program 8701 for setting a part to be attached reads out apart to be attached from the memory 6902 and stores it with respect tothe part to be attached 6714 in the operating data 6707. A program 8402for retrieving a jointing method retrieves the part to be attached dataread out from the memory 6902 and stores it in the jointing data 8402.

[0466] A program 8707 for retrieving a special operation for jointingretrieves the special operation of jointing method retrieved by theprogram 8706 from the table 8403.

[0467] A program 8708 for determining operating data which is specialfor jointing determines the direction and the amount of operation of theoperation special for jointing from the special operation retrieved bythe program 8707 for retrieving a special operation from the jointingdata 8402 with reference to the parameter of the jointing method.

[0468] A program 8702 for setting a kind of assembling operation specialfor jointing receives a special operation from the program 8707 forretrieving a jointing method and stores it as the kind of operation 6715in the operating data 6707.

[0469] A program 8703 for setting the direction of the assemblingoperation special for jointing receives a direction of the operationspecial for jointing from the program 8708, and stores it as thedirection of operation 6716 in the operating data 6707.

[0470] A program 8704 for setting the amount of the assembling operationspecial for jointing receives an amount of the operation special forjointing from the program 8708, and stores it as the amount of operation6717 in the operating data 6707.

[0471] A program 8705 for setting an assembling time step special forjointing receives a time step from the program 7805, and stores it asthe time step 6718 in the operating data 6707.

[0472] Description will be made below using an example of the principlewhere the program 8601 for producing assembling operating data with aspecial operation for jointing.

[0473]FIG. 88 shows an assembled state of two parts 8801 and 8802. Thisassembling procedure data is shown in FIG. 89. In FIG. 89, the part 8801is a part to be set at the beginning, and the part 8802 is a part to beattached in the direction of a vector 8803. FIG. 90 shows the inputjointing data. Firstly, operating data is produced by the programs 7801to 7805 in FIG. 87, and this operating data is stored to the operatingdata 6707.

[0474] This operation is the same as described with reference to theaforementioned embodiment. The resultant operating data is seen in therow 9101 in FIG. 91.

[0475] Next, assembling operating data special for jointing is producedand stored to the operating data 6707. Firstly, a part to be attached8802 is read out from the memory area 6902 and is stored to theoperating data 6707.

[0476] Next, the part to be attached 8802 is retrieved from the jointingdata in FIG. 90, and the method of jointing “screw” is obtained. Afterthat, the indication “screw” is retrieved from the table coping withspecial operation for jointing in FIG. 85, and the special operation forjointing “revolution” is obtained.

[0477] The special operation for jointing “revolution” obtained isstored in the operating data 6707 as the kind of assembling special forjointing. Next, the parameter of the jointing method “screw” is referredto from the jointing data in FIG. 90.

[0478] Then, the parameter of a center axis is set as a vector of thecenter axis around which the part to be attached 8802 is rotated. Theangle of rotation by which the part to be attached 8802 is rotated isobtained from the parameter of the screw length. These values will bedesignated D_(v), D_(rot), respectively.

[0479] The obtained vector D_(v) of the center axis is stored in theoperating data 6707 as the direction of operation, and the obtainedangle D_(rot) of rotation is stored in the operating data 6707 as theamount of operation. In the last step, a value equal to the time step ofthe operating data 9101 of the part to be attached 8802 is stored in theoperating data 6707 as the time step for the assembling operationspecial for jointing. The resultant operation data is shown in the row9102 in FIG. 91.

[0480]FIG. 92 and FIG. 93 are views showing the process displayed by ananimation which is produced by using the operating data shown in FIG. 79as input data and producing the animation of the process 6604 shown inFIG. 66. Herein, the animation process from a detached state will bedescribed, assuming that the animation of the detaching operating datahas been completed.

[0481]FIG. 92 shows a state where the part 9201 is detached, that is, astate just before starting of the assembling operation. The time step atthis time is ST1 (T_(const)) and the distance 9202 moved from theassembled state by the animation of the detaching operating data isD_(const).

[0482]FIG. 93 shows an intermediate state of the animation of theassembling operation. This is a feature where the part to be attachedreaches the position of part 9301 after passage of a certain time fromthe position of part 9201. The movement of the part to be attached as itis being rotated is indicated with vector 9302 as the vector of thecenter axis D_(v) and arrow 9303 as the rotating angle, while the partto be attached is moving straight in accordance with a directionalvector 8803.

[0483] Finally, the parts reach an assembled state at time step ET1, asshown in FIG. 88. As described above, by adding an operation special forjointing, the details of the assembling work as well as the order ofassembling can be easily confirmed.

[0484] A further embodiment of the present invention will be describedbelow. FIG. 94 is a block diagram showing the construction of anapparatus for producing animation of an assembling operation whichincludes the apparatus for producing animation in FIG. 84, and the table8403 providing for a special operation for jointing is changed to atable 9401 for providing an animation speed ratio, while the program8404 for producing operating data is changed to a program 9402 forproducing operating data with consideration of a speed ratio.

[0485] The program 9402 for producing operating data with considerationof a speed ratio reads out each part to be attached from the assemblingprocedure data 6706 and jointing data from the jointing data 8402, andproduces operation data with reference to the table 9401, and stores itto the operating data 6707. The table 9401 is a table for providingcorrespondence between the method of jointing in the jointing data andthe animation speed ratio of the operation of the method of jointing.

[0486]FIG. 95 shows an example of the table 9401. The methods ofjointing for assembling, such as snap, screw, welding and so on, are setin the column of the jointing method 9501, and the ratio of theanimation time of the jointing method to the animation time (T_(int))for each part to be attached as described in the aforementionedembodiment are set in the column of special operation 9502.

[0487]FIG. 96 is a functional diagram showing the construction of anembodiment of the program 9402 for producing operating data withconsideration of the speed ratio. A program 6901 for sequentiallyreading-out a procedure reads out assembling procedure steps in theassembling procedure data 6906 one by one, and stores them into a memoryarea 6902 for a part to be attached and a memory area 6903 forindicating the attaching direction.

[0488] A program 6907 produces the detaching operating data in which thestarting point is the position of an assembled state of the part to beattached and the ending point is the position proceeding in thedirection opposite to the attaching direction read out from the memoryarea 6903. The operating data produced is stored as the operating data6707.

[0489] A program 9601 produces assembling operating data having ananimation time with consideration of a speed ratio in which the startingpoint is the ending point in the program 6907 for producing detachingoperating data and the ending point is the position of an assembledstate of the part to be attached. The operating data produced is storedas the operating data 6707.

[0490]FIG. 97 is a functional diagram showing the construction of anembodiment of the program 9601 for producing assembling operating datawith consideration of a speed ratio. The process from the program 8701for setting a part to be attached to the program 7804 for setting anamount of the assembling operation is the same as described inconnection with FIG. 78.

[0491] A program 8706 retrieves the part to be attached data read outfrom the memory 6902 for a part to be attached in the jointing delta8402. A program 9701 retrieves the speed ratio of the jointing methodretrieved by the program 8706 from the table 9401.

[0492] A program 9702 for setting an assembling time step withconsideration of speed ratio receives a speed ratio from the program9701, and calculates a time step, and stores it as the time step 6718 inthe operating data 6707.

[0493] Description will be made below using an example of the principlewhere the program 9601 for producing assembling operating data takesinto consideration a speed ratio. FIG. 98 shows an assembled state ofthree parts 9801, 9802 and 9803. The attaching direction of the parts9802, 9803 is the directional vector 9804.

[0494] This assembling procedure data is, for example, is shown in FIG.99. The step 9901 is to set the part 9801 in the beginning, and thesequence of attaching is first the part 9802 and then the part 9803according to the steps 9902, 9903.

[0495]FIG. 100 shows input jointing data. The description of thisexample will be made only with respect to setting of the assembling timestep of the part 9802, which is as follows.

[0496] Firstly, the step 9902 of the part to be attached 9802 isretrieved by the program 8706 for retrieving a jointing method withreference to the jointing data shown in FIG. 100, and the jointingmethod “snap” is obtained.

[0497] Next, the indication “snap” is retrieved by the program 9701 forretrieving a speed ratio with reference to the tables shown in FIG. 95,and the speed ratio “1.0” is obtained. Then, a starting time and anending time are calculated by the program 9702 for setting theassembling time step, and the result is stored in the operating data6707.

[0498] The starting time (ST1) and the ending time (ET1) are obtained bythe following equation.

ST1=T_(const)  (10)

ET1=T _(const) +RT1×T _(int)  (11)

[0499] where T_(const) is a constant value of the time step, and isequal to the ending time of each part to be attached in the detachingoperation data. T_(int) is a standard animation time during which apart-to-be-attached is changed from a detached state to an attachedstate. RT1 is a speed ratio retrieved by the program 9701, and is “1.0”in this case. The resultant operating data is shown in the row 10101 inFIG. 101.

[0500] Setting of the assembling time step in the next step 9903 is asfollows. Firstly, the part to be attached 9803 in the step 9903 isretrieved with referring to the jointing data shown in FIG. 100, and thejointing method “screw” is obtained.

[0501] Next, the indication “screw” is retrieved by the program 9701,and the speed ratio “1.5” is obtained. Then, a starting time and theending time are calculated by the program 9702 for setting theassembling time step, and the results are stored in the operating data6707.

[0502] The starting time (ST2) and the ending time (ET2) are obtained bythe following equation.

ST2=ET1  (12)

ET2=ST2+RT2×T _(int)  (13)

[0503] where RT2 is the speed ratio retrieved by the program 9701, andis “1.5” in this case. The starting time (ST2) is the ending time (ET1)of the preceding part to be attached. The ending time (ET2) iscalculated by using the product of the standard animation time and thespeed ratio as the animation time.

[0504] It can be understood from this that the animation time of thepart 9803 is larger than that of the part 9802, and therefore the part9803 moves slower than the part 9802.

[0505]FIG. 102 to FIG. 104 are views showing the process displayed by ananimation which is produced by using the operating data shown in FIG. 79as input data and producing the animation of the process 6604 shown inFIG. 66. Therein, D_(const)=1.0, and T_(int)=5.0. Herein, the animationprocess from a detached state will be described, assuming that theanimation of the detaching operating data has been completed.

[0506]FIG. 102 shows a state where the parts 10202 and 10203 aredetached, that is, a state just before starting of the assemblingoperation. The time step at this time is ST1 (1.0).

[0507] Firstly, an animation of the part to be attached 10201 is startedat time step “1.0”, the part to be attached 10201 moves in the directionof the attaching direction vector 9804 and proceeds to the position ofthe part 10301 at time step ET1 (6.0), and then the animation ends. Thisfeature is shown in FIG. 103. The animation time of the part to beattached 10201 is 5.0 seconds.

[0508] Next, an animation of the part to be attached 10202 is started attime step ST2 (6.0), the part to be attached 10202 moves in thedirection of the attaching direction vector 9804 and proceeds to theposition of the part 10401 at time step ET2 (13.5), and then theanimation ends. This feature is shown in FIG. 104. The animation time ofthe part 10202 is 7.5 seconds, and is longer than that of the part 10201by 2.5 seconds.

[0509] A larger value is employed as the speed ratio described in theembodiment as the assembling becomes more difficult. Although theanimation speed is expressed as a ratio to the time for a standardassembling operation, the actual assembling time may be employed bysetting it in a table.

[0510] In this case, the starting time STn and the ending time ETn areobtained by the following equation. Therein, Bn expresses the method ofjointing, and function RT expresses the assembling time corresponding tothe method of jointing Bn.

ETn=STn+RT(Bn)  (14)

[0511] As described above, by changing the animation time depending onthe degree of difficulty in assembling of a part, the details ofassembling as well as the order of assembling can be easily confirmed.

[0512] A further embodiment of the present invention will be describedbelow. FIG. 105 is a block diagram showing the construction of anapparatus for producing animation of an assembling operation whichincludes the apparatus for producing animation in FIG. 94, and in whichthe table 9401 for consideration of animation speed ratio is changed toa table 10501 concerning operation sound, and the program 9402 forproducing operating data for consideration of speed ratio is changed toa program 10502 for producing operating data with operation sound data,and the operating data 6707 is changed to operating data 10503 withoperation sound data 10504.

[0513] The program 10502 reads out each part to be attached from theassembling procedure data 6706 and jointing data from the jointing data8402, and produces operation data with reference to the table 10501providing operation sound data, and stores it to the operating data6707. The table 10501 is a table for providing correspondence betweenthe method of jointing in the jointing data and the sound generated atthe time of performing work with the method of jointing.

[0514]FIG. 107 shows an example of the table 10501. The methods ofjointing for assembling, such as snap, screw, welding, soldering and soon, are set in the column of jointing methods 10601, and the actual worksounds generated at the time of performing assembling work correspondingto the method of jointing are set in the column of operation sounds10602 as, for example, digitized data.

[0515]FIG. 107 is a functional diagram showing the construction of anembodiment of the program 10502 for producing operating data to which isadded operation sound data. A program 6901 for sequentially reading-outa procedure reads out assembling procedure step sin the assemblingprocedure data 6906 one by one, and stores them into a memory area 6902for a part to be attached and a memory area 6903 for indicating anattaching direction.

[0516] A program 6907 for producing detaching operating data producesthe detaching operating data in which the starting point is the positionof an assembled state of the part to be attached and the ending point isthe position proceeding in the direction opposite to the attachingdirection read out from the memory area 6903. The operating dataproduced is stored as the operating data 10503.

[0517] A program 10701 produces the assembling operating data to whichis added operation sound data in which the starting point is the endingpoint in the program 6907 and the ending point is the position of anassembled state of the part to be attached. The operating data producedis stored as the operating data 10503.

[0518]FIG. 108 is a functional diagram showing the construction of anembodiment of the program 10701. The process from the program 8701 forsetting a part to be attached to the program 7805 for setting anassembling time step is the same as described in connection with FIG.78.

[0519] A program 8706 for retrieving a jointing method retrieves thepart to be attached data read out from the memory area 6902 for a partto be attached in the jointing data 8402. A program 10801 for retrievingoperation sound data retrieves the work sound data of the method ofjointing retrieved by the program 8706 from the table 10501.

[0520] A program 10802 for setting sound data receives operation sounddata from the program 10801, and stores it as the operation sound data10504 in the operating data 10503.

[0521] Description will be made below of the principle of the program10701, referring to FIG. 68, FIG. 69, FIG. 70. Herein, only the settingof the operation sound data for the parts 9802 and 9803 will bedescribed.

[0522] The setting of the operation sound data in the step 9902 is asfollows. Firstly, the step 9902 of the part to be attached 9802 isretrieved by the program 8706 with reference to the jointing data shownin FIG. 100, and the jointing method “snap” is obtained.

[0523] Next, the operation sound “none” corresponding to “snap” isobtained by the program 10801 with reference to the table shown in FIG.106. Then, the operation sound data is stored as the operation sound10504 in the operating data 10503 by the program 10802. The resultantoperating data is shown in the row 10901 in FIG. 109.

[0524] Setting of operation sound data in next step 9903 is as follows.Firstly, the part to be attached 9803 in the step 9903 is retrieved withreference to the jointing data shown in FIG. 100, and the jointingmethod “screw” is obtained.

[0525] Next, the indication “screw” is retrieved by the program 10801,and the operation sound data is obtained. Then, the operation sound datais stored as the operation sound 10504 in the operating data 10503. Theresultant operating data is shown in the row lO9C)2 in FIG. 109.

[0526] Description will be made below using FIG. 102, FIG. 103 and FIG.104 on the process of an animation display where the animation of theprocess 6604 shown in FIG. 66 is produced with the operating data shownin FIG. 109 as input data. Therein, the process of the animation will bedescribed starting from a disassembled state by assuming that theanimation of the detaching operating data has been completed.

[0527]FIG. 102 shows a state where the parts 10202 and 10203 aredetached, that is, a state just before the starting of the assemblingoperation. Firstly, a part 3901 moves in the direction of the attachingdirection vector 3504 as shown in FIG. 103. At this time, since thesound data of the operating data is “none”, no operation sound isproduced. The part 3901 proceeds to the position of the part 10301, andthen the animation ends.

[0528] Next, the part 10202 moves in the direction of the attachingdirection vector 9804. At this time, since a digitized operation sounddata is set as the operating data 10902, the data is transferred to a DAconverter to reproduce the operation sound “frizzle”. The part 10202proceeds to the position of the part 10401 while the operation sound isbeing produced, and then the animation ends.

[0529] Although the operation sound is obtained depending on the kind ofthe jointing method for the part to be attached in this embodiment, thetone of the sound, the kind of the sound, the source of the sound andthe volume of the sound of the operation may be changed depending on thekind of operation or a parameter of the operation.

[0530] In the aforementioned embodiments, the amount of the operation isfixed to a constant value. An embodiment where the amount of theoperation is calculated from geometrical data will be described below.

[0531]FIG. 110 is a block diagram showing the construction of anapparatus for producing animation of an assembling operation includingthe apparatus for producing detaching operating data in FIG. 71, andwherein geometrical data 6705 is added and the program 7104 for settingthe amount of the detaching operation is changed to a program 11001 forsetting the amount of the detaching operation in consideration ofgeometrical data.

[0532] The program 11001 reads out each part to be attached from thememory area 6902 for a part to be attached and calculates the amount ofthe detaching operation using the geometrical data, and stores it to theoperating data 6707.

[0533] Description will be made below using an example of the principlewhere the program 11001 for setting amount of the detaching movementconsidering geometrical data calculates the amount of the detachingmovement. In this embodiment, the maximum length of the sides in apolygonal column as a bounding box containing all the parts of anassembly is used.

[0534]FIG. 111 shows the geometry of an assembly for the purpose ofexplanation. A part 11101 is a part set at the beginning. A part 11102is a part to be attached to the part 11101 in a direction 11104. A part11103 is a part to be attached to the part 11101 in a direction 11105.Firstly, a bounding box containing the parts 11101, 11102, 11103 isobtained from the geometrical data 6705.

[0535]FIG. 112 shows the bounding box 11201 containing the three parts.The side lengths of the bounding box are a side length 11202 in thedirection of X-axis, a side length 11203 in the direction of Y-axis, aside length 11204 in the direction of Z-axis.

[0536] Next, the longest side length 11203 among the three side lengthsis obtained. Let the longest side length be L_(max). The amount of thedetaching movement D is obtained by the following equation. Therein, nis a predetermined constant value.

D=n×L _(max)  (15)

[0537]FIG. 113 shows a feature of the animation result in which theparts are detached by the amount obtained from the above method. Thepart to be attached 11102 is moved from the attached state in thedirection opposite to the attaching direction 11104 by the distance11301, and the part to be attached 11103 is moved from the attachedstate in the direction opposite to the attaching direction 11105 by thedistance 11302. The distance 11301 and the distance 11302 are the amountof the detaching movement D.

[0538] Although a polygonal column is used as a bounding box in theabove embodiment, a sphere containing all the parts of an assembly maybe used. FIG. 114 shows an example where the diameter of a spherecontaining all the parts of an assembly as a bounding box is used.

[0539] Firstly, a bounding box 11401 containing the parts 11101, 11102,11103 is obtained from the geometrical data 6705, and the diameter 11401is assumed to be L_(max). The process after this is the same as in thecase of the bounding box of the polygonal column.

[0540] Although the amount of the detaching movement is calculated basedon a bounding box containing all the parts of an assembly in thisembodiment, the amount of the detaching movement may be calculated basedon a bounding box containing only a part of an assembly set in thebeginning. By doing so, an amount of movement fit to the size of anassembly can be set and an animation which is easy to be understood canbe obtained.

[0541] Another embodiment for setting a time step in the program 6908producing assembling operation data will be described below. FIG. 115 isa block diagram showing the construction of an apparatus for producingassembling operating data including the construction of the apparatusfor producing operating data shown in FIG. 78, and wherein geometricaldata 6705 and work data 11501 are added, and the program 7805 forsetting an assembling time step is changed to a program 11502 forsetting an assembling time step with reference to input data.

[0542] The work data 11501 is composed of a kind of work 11503expressing kinds of work and a work parameter 11504 expressing detaileddata of the work.

[0543] The program 11502 reads out a part for attaching from the memoryarea 6902, reads out geometrical data of the part for attaching from thegeometrical data 6705, reads out an attaching direction from the memoryarea 6903 and reads out work data from work data 11501, and calculatesan assembling time step using these data, and then the result is storedin the time step 6708 in the operating data 6707.

[0544] Description will be made below using an example of the principlewhere the program 11502 for setting assembling time step consideringinput data calculates an assembling time step. Firstly, an example ofcalculating a time step using geometrical data will be described. Inthis embodiment, the volume of a part to be attached is used.

[0545]FIG. 116 shows the geometries of parts to be attached in adisassembled state for the purpose of explanation. A part 11601 is apart set at the beginning. A part 11602 is a part to be attached to thepart 11601 in a direction 11604. Then, a part 11603 is a part to beattached to the part 11601 in a direction 11605. Firstly, the volumes ofthe part 11602 and 11603 are calculated from the geometrical data of theparts.

[0546] Next, a time step is determined having an animation timeproportional to the size of the obtained volume of the part. Let theobtained volume of the part 11602 be Vol₁, and the obtained volume ofthe part 11603 be Vol₂. The volume of the part 11602 is larger than thevolume of the part 11603, as can be understood from the sizes ofgeometries in FIG. 116, Vol₁>Vol₂. The starting time step (ST1) and theending time step (ET1) of the part 11602 are obtained by the followingequations.

ST1=T_(const)  (16)

ET1=ST1+Vol ₁ /V _(const)  (17)

[0547] where V_(const) is a preset volume per 1 second of animationtime.

[0548] The starting time step (ST2) and the ending time step (ET2) ofthe part 11603 are obtained by the following equations.

ST2=ET1  (18)

ET2=ST2+Vol ₂ /V _(const)  (19)

[0549] In the assembling animation using the assembling time stepsobtained above, firstly the part 11602 moves slowly in the attachingdirection 11604 to be attached to the part 11601, and then the part11603 moves rapidly in the attaching direction 11605 to be attached tothe part 11601.

[0550] Although the time step is determined by the animation timeproportional to the size of the volume of a part to be attached in thisembodiment, the time step may be obtained by calculating a function forcalculating animation time using volume (Vol) as a parameter of thefunction for calculating animation time. The equations to calculate atime step of the part 11602 are as follows.

[0551] Therein, F(Vol) is an arbitrary function of Vol as a parameter,and the content is, for example, F(Vol)=3.0+(Vol+10.0)/V_(const).

TS1=T_(const)  (20)

ET1=ST1+F(Vol ₁)  (21)

[0552] In another manner, the time step may be calculated using Vol₁ orVol₂ obtained from the volume of a bounding box of a part to beattached.

[0553] Although the time step is determined from the volume of a part tobe attached in the above embodiments, the time step may be calculatedfrom the maximum side length of a bounding box of a polygonal column orthe diameter of a bounding box of a sphere for a part to be attached. Bydoing so, it is possible to obtain an animation in which a large part tobe attached moves slowly and a small part to be attached moves rapidly.

[0554] An embodiment for calculating a time step from an attachingdirection will be described below. In the embodiment, the crossing angleof an attaching direction of a part to be attached and the direction ofZ-axis of a coordinate system, that is, the direction of the gravity areused.

[0555]FIG. 117 shows the geometries of parts in a disassembled state forthe purpose of explanation. A part 11701 is a part set at the beginning.Firstly, a part 11702 is attached to the part 11701 in an attachingdirection 11705. Next, a part 11703 is attached to the part 11701 in anattaching direction 11706. Finally, a part 17704 is attached to the part11701 in an attaching direction 11707.

[0556] In the first step, the crossing angles of attaching directions11705, 11706, 11707 of the parts to be attached 11702, 11703, 11704 andthe direction of the −Z-axis of a coordinate system 11708 are obtained.Let the obtained angles be D1, D2, D3, respectively.

[0557]FIG. 118 shows the relationship between the direction of the−Z-axis and the obtained angles. In the figure, the line segments shownby dotted lines indicate the directions having angles to the −Z-axis11801 with units of 45 degrees, and the numbers 11802 shown at the endsof the dotted lines indicate coefficients for obtaining animation time.The angles of the attaching directions 11705, 11706, 11707 are indicatedby the arrows 11803, 11804, 11805.

[0558] The animation times for the parts are obtained by the followingequations.

T1=T _(int)×(0.2+0.2×(D1/45.0))  (22)

T2=T _(int)×(0.2+0.2×(D2/45.0))  (23)

T3=T _(int)×(0.2+0.2×(D3/45.0))  (24)

[0559] where T1, T2, T3 are the animation times for the parts 11702,11703, 11704. T_(int) is the standard animation time explained in FIG.67.

[0560] Next, the starting time and the ending time are obtained from theanimation time. As can be understood from FIG. 118, since a decreasingorder of the angles is D1>D2>D3, it is obtained that T1>T2>T3. Thereby,the animation times of the three parts become, in the increasing orderof the parts to be attached, 11704, 11703, 11702.

[0561] As described above, the assembling animation time becomes shorteras the attaching direction becomes closer to the direction of gravity,and the assembling animation time becomes longer as the attachingdirection becomes far apart from the direction of gravity.

[0562] Next, an embodiment for calculating the time step from work datawill be described. In this embodiment, the kind of work and the workparameter composing the operating data for a part to be attached areused. FIG. 119 shows the operating data. The kind of work 11901expresses a kind of work, such as arc welding, spot welding, solderingand so on.

[0563] The work parameter 11902 is detailed data corresponding to thekind of work 11901, and, for example, expresses the length to be weldedin a case of arc welding. This embodiment shows an example where thekind of work 5601 is arc welding.

[0564]FIG. 120 shows geometries of parts in a disassembled state for thepurpose of explanation. A part 12001 is, a part set at the beginning. Apart 12002 is attached to the part 12001 in an attaching direction12003, and an arc portion 12004 of the part 12001 and an arc portion12005 of the part 12002 are welded together.

[0565] The assembling animation time (T1) at this time determined bycalculating an animation time ratio using the kind of work and the workparameter and multiplying the standard animation time T_(int) describedin FIG. 67. This equation is shown below.

T1=T _(int)×G(K _(ind) ,P _(ara))  (25)

[0566] where G(K_(ind), P_(ara)) is a function calculating an animationtime ratio using a kind of work K_(ind) and a work parameter P_(ara).

[0567]FIG. 121(A) shows the content of the function G. In a case of arcwelding, the equation 12102 is specified by an index K_(ind), and theequation 12102 is calculated using an index P_(ara) to determine thevalue 12103 of the function G. Although a case where the kind of work isarc welding has been described here, the procedure in a case of anotherkind of work is the same as in this case.

[0568] Further, by producing two kinds of assembling operating dataexpressing an operation in the time period during which the part 12002moves from the detached position to the position of the part 12001 andan operation in the time period during which the welding is actuallyperformed, the actual welding time is expressed by making the part 12002motionless.

[0569]FIG. 121(B) shows a process of animation where the standardanimation time T_(int) is set to the time period in which the part 12002reaches the position of the part 12001 and the animation time T1obtained by the function G is set to the time period of actual welding.

[0570] In FIG. 121(B), the course of operation (a) shows a state wherethe part 12002 is a detached state, operation (b) shows a state wherethe part 12002 is moving in the direction of the attaching direction12003, and operation (c) is a state where the part 12002 reaches theposition of the part 12001. The animation time 12104 from operation (a)to operation (c) becomes T_(int). Then, welding work starts at operation(c) and is completed at operation (d). During operations (c) to (d), thepart 12002 is in a motionless state, and the time 12105 is T1.

[0571] By using the time step based on geometrical data, an attachingdirection and work data, it is possible to obtain an animation by whichthe degree of difficulty and the detailed sharing of time of theattaching work can be understood from the assembling animation.

[0572] An embodiment of operating data to which a display attribution isadded will be described below.

[0573]FIG. 122 is a functional diagram showing the construction of anapparatus for producing animation of an assembling operation includingthe apparatus for producing animation in FIG. 67, and wherein a program8401 for inputting jointing data and jointing data 8402 described inFIG. 84 are added, and the program 6710 for producing operating data ischanged to a program 12201 for producing operating data to which isadded a display attribution, and the operating data 6707 is changed tooperating data 122 2 including a display flag 12203, the color of part12204, and a message 12205.

[0574] The program 12201 produces operating data to which is added adisplay attribute with reference to the assembling data 6707 andjointing data read out from the jointing data 8402, and stores it in theoperating data 12202.

[0575] Firstly, description will be made of the method in which theprogram 12201 sets a display flag 12203 in the operating data 12202.

[0576]FIG. 123 is a structural diagram showing the function of anembodiment of the program 12201 for producing operating data to which isadded a display attribution. The program 6901 reads out the steps of anassembling procedure in the assembling procedure data 6708 one-by-one,and stores it in the memory area 6902 for a part to be attached and thememory area 6903 for indicating the attaching direction.

[0577] A program 12301 produces detaching operating data in which thestarting point is the position of an assembled state of the part to beattached and the ending point is the position proceeding in thedirection opposite to the attaching direction read out from the memoryarea 6903. The operating data produced is stored as the operating data12202.

[0578] A program 12302 produces assembling operating data in which thestarting point is the ending point in the program 12301 and the endingpoint is the position of an assembled state of the part to be attached.The operating data produced is stored as the operating data 12202.

[0579] The process will be described using an example, referring to FIG.98 and FIG. 99. Since the step 9901 is to set a part in the beginning,operating data is not produced. In step 9902, the display flag 12203 ofthe detaching operation data is set to “not-display” in the program12301.

[0580] The display flag 12203 of the attaching operation data is set to“display” in the program 12302. The resultant operating data is shown inthe rows 12401 and 12403 in FIG. 124.

[0581] In step 9903, similarly, the operating data 12402 and 12404 isproduced. As shown in FIG. 124, the display flag 12405 indicates whetheror not a part to be attached is displayed in the animation of theoperation. FIG. 125 to FIG. 127 show the course of animation displayusing the operating data as input data.

[0582] In the state where parts to be attached are separated byperforming the operation data 12401 and 12502, only the part 9801 isdisplayed but the parts to be attached 9802 and 9803 are not displayed,as shown in FIG. 125.

[0583] Next, as shown in FIG. 126, when the operating data 12403 isperformed, the part to be attached 9802 is displayed and the animationis performed by movement of the part in the attaching direction 9804.Then, as shown in FIG. 127, when the operating data 12304 is performed,the part to be attached 9803 is displayed and the animation is performedby moving the part in the attaching direction 9804.

[0584]FIG. 128 is a functional diagram showing the structure of anembodiment of the program 12201 for producing operating data with adisplay attribution. Using this figure, description will be made of themethod of setting the color of part 12204 in the operating data 12202 bythe program 12201.

[0585] The program 6901 for sequentially reading out a procedure readsout the steps of an assembling procedure in the assembling proceduredata 6708 one by one, and stores them in the memory area 6902 for a partto be attached and the memory area 6903 for indicating the attachingdirection.

[0586] A program 12801 for producing detaching operation data includingthe color of a part produces detaching operating data in which thestarting point is the position of an assembled state of the part to beattached and the ending point is the position proceeding in thedirection opposite to the attaching direction read out from the memoryarea 6903. The operating data produced is stored as the operating data12202.

[0587] A program 12802 produces assembling operating data in which thestarting point is the ending point in the program 12801 and the endingpoint is the position of an assembled state of the part to be attached.

[0588] The operating data produced is stored as the operating data12202. The program 12802 produces the assembling operating data in theposition of the assembled state, and the operating data produced isstored as the operating data 12202.

[0589] The process will be described using an example, referring to FIG.98 and FIG. 99. Herein, only the steps 9901 and 9902 will be described.Since the step 9901 is to set a part in the beginning, operating data isnot produced.

[0590] In step 9902, the color of the part for the detaching operationdata is set. Let the color of the part be “red”. Next, the color of thepart for the attaching operation data is set to a different color. Letthe color of that part be “blue”.

[0591] And, the color of the part for assembling completion data is setto a different color from the colors of parts for the detachingoperation data and the attaching operation data. Let the color of thispart be “green”. The resultant operating data is shown in the rows12901, 12902 and 12903 in FIG. 129. As shown in FIG. 129, the color ofpart 12904 indicates the displayed color of a part to be attached in theanimation of the operation.

[0592]FIG. 130 and FIG. 131 show the course of the animation displayusing the operating data as input data. In FIG. 130, the part to beattached is in a detached state by executing the operating data 12901,and the part to be attached 9802 is displayed with the color “red”.

[0593] Next, in FIG. 131, the color of part of the part to be attached9802 is changed to “blue” by executing the operating data 12902, and theanimation is performed to move the part in the attaching direction 9804.After the part to be attached 9802 is attached, the part is displayedwith “green” by executing the operating data 12903.

[0594]FIG. 132 is a functional diagram showing the structure of anembodiment of the program 12201 for producing operating data having adisplay attribution. Using this figure, description will be made of themethod of producing the message 12205 in the operating data 12202 usingthe program 12201.

[0595] The program 6901 for sequentially reading out a procedure readsout the steps of the assembling procedure in the assembling proceduredata 6708 one by one, and stores them in the memory area 6902 for a partto be attached and the memory area 6903 for indicating the attachingdirection.

[0596] The program 6907 produces detaching operating data in which thestarting point is the position of an assembled state of the part to beattached and the ending point is the position proceeding in thedirection opposite to the attaching direction read out from the memoryarea 6903. The operating data produced is stored as the operating data12202.

[0597] A program 13201 produces assembling operating data in which thestarting point is the ending point in the program 6907 and the endingpoint is the position of an assembled state of the part to be attached.The operating data produced is stored as the operating data 12202.

[0598] The process will be described using an example. FIG. 133 shows anassembled state of two parts 13301 and 13302. FIG. 134 shows theassembling procedure data. It can be understood that the part to be setat the beginning is the part 13301 and the part to be animated is thepart 13302.

[0599]FIG. 135 shows the input jointing data. Firstly, since the step13401 is to set the part at the beginning, operating data is notproduced. Herein, description will be made only of the assemblingoperation by the program 13201.

[0600] Next, the message of the assembling operating data is set by thestep 13402. The details are as follows. Firstly, the part to be attached13302 is read out from the memory area 6902, and the part to be attached13302 is retrieved from the jointing data 8402, and then the method ofjointing “welding” is obtained.

[0601] Using the method of jointing obtained, a message for expressingthe content of work is produced. In the case of this example, since themethod of jointing is “welding”, the message is “under welding work” andthe message is set as the message 12205. The result of the operatingdata is shown in the row 13601 in FIG. 136.

[0602]FIG. 137 shows a course of animation display using the operatingdata as input data. The part to be attached 13302 moves toward the part13301 in the animation direction 13702 and the message 13701 expressingthe content of work is displayed at the same time. By producingoperating data with a display attribution as described above, it ispossible to identify a part being attached and to understand the contentof work for such a part.

[0603] The embodiment has shown a method in which this direction ofoperation, the amount of operation, and the time step in the operatingdata are produced from the assembling procedure data, the geometricaldata for a part to be attached, the jointing data, and the work data.

[0604] However, the present invention is not limited to the embodimentswhere the operating data is produced from one kind of data. It isneedless to say that the operating data may be produced by combiningplural kinds of data.

[0605] Further, the embodiment has shown a method in which the animationdata produced is determined by the kind of operation, the direction ofoperation, the amount of operation, and the time step.

[0606] However, the present invention is not limited to a method of suchkind. The present invention can be applied to a key-frame method wherethe positional information of each part corresponding to time is used asoperating data.

[0607] According to the present invention, there is an effect todecrease man-power in producing an animation of an assembling operationsince the animation of the assembling operation can be automaticallyproduced so long as there are at least geometrical data and assemblingprocedure data.

[0608] Further, according to the present invention, there is an effectto make confirmation of the content of assembling work easy, since theanimation of a part to be attached with respect to the attachingdirection and the animation of the movement of the part to be attacheditself are performed at one time by determining the movement of the partto be attached from operating data. Furthermore, according to thepresent invention, it is possible to animate with an amount of movementfit to the size of whole assembly by determining the amount of operationof the part to be attached from geometrical data.

[0609] Therefore, an animation of assembling a product from a hugeproduct, such as ship, to a small and precise product, such as watch andLSI, which is easy to observe can be obtained without specifying theamount of movement.

[0610] According to the present invention, there is an effect to makeconfirmation of difficulty of the assembling work easy since animationcan be performed with time corresponding to the content of work bycalculating the time steps using the work data, the geometrical data,the attaching direction data and so on.

[0611] Further, according to the present invention, there is an effectto make confirmation of the content of the assembling work easier thanin an animation displaying only movement of parts, since the sound ofactual work can be produced together with animation of the parts to beattached by determining the sound of the work from the jointing data.

[0612] Further, according to the present invention, there is an effectto make confirmation of the part being attached, since the display stateof the part to be attached and the color of the part to be attached canbe changed in the course of animating.

[0613] Furthermore, according to the present invention, there is aneffect to understand the content of the work involved in the attachingat a glance, since a message indicating the type of work can bedisplayed together with the animation.

1. An apparatus for producing an exploded view of an assembly having aninput unit, a geometrical data memory for storing geometrical data ofparts composing said assembly and a calculating unit for displaying saidassembly to a display unit based on said geometrical data, whichcomprises: means for determining arranged positions of the partscomposing said assembly in a disassembled state based on assemblingprocess data and said geometrical data, thereby an exploded view beingdisplayed in said display unit corresponding to said arranged positionsdetermined.
 2. An apparatus for producing an exploded view of anassembly according to claim 1, wherein: said geometrical data comprisescontrol points of a curved line or surface constructing a part andvertexes of a part.
 3. An apparatus for producing an exploded view of anassembly having an input unit, a geometrical data memory for storinggeometrical data of parts composing said assembly and a calculating unitfor displaying said assembly to a display unit based on said geometricaldata, which comprises: means for determining distances between the partscomposing said assembly in a disassembled state on an exploded viewbased on assembling process data and said geometrical data, thereby anexploded view being displayed in said display unit corresponding to saiddistances determined.
 4. An apparatus for producing an exploded view ofan assembly having an input unit, a geometrical data memory for storinggeometrical data of parts composing said assembly and a calculating unitfor displaying said assembly to a display unit based on said geometricaldata, which comprises: means for producing a polyhedron containing thegeometrical form of said part using said geometrical data; and means fordetermining distances between the parts composing said assembly in adisassembled state on an exploded view based on assembling process dataand the geometrical data on said polyhedron determined, thereby anexploded view being displayed in said display unit corresponding to saiddistances determined.
 5. An apparatus for producing an exploded view ofan assembly having an input unit, a geometrical data memory for storinggeometrical data of parts composing said assembly and a calculating unitfor displaying said assembly to a display unit based on said geometricaldata, which comprises: sight direction inputting means for inputting adirection of sight in displaying an exploded view of said assembly; andmeans for determining distances between the parts composing saidassembly in a disassembled state on an exploded view based on assemblingprocess data, thereby said geometrical data and said input sightdirection data, an exploded view being displayed in said display unitcorresponding to said distances determined.
 6. An apparatus forproducing an exploded view of an assembly according to any one of claim1 to claim 5, wherein said assembling process data composed of attachingorders and attaching directions.
 7. An apparatus for producing anexploded view of an assembly having an input unit, a geometrical datamemory for storing geometrical data of parts composing said assembly anda calculating unit for displaying said assembly to a display unit basedon said geometrical data, which comprises: a memory for assemblingprocess data for storing assembling data composed of attaching ordersand attaching directions of said parts; minimum scalar product valuecalculating means for calculating the scalar products of the vertexcoordinates of a part in said memory for geometrical data and theattaching direction vector in said memory for assembling process dataand for obtaining the minimum value of the scalar products; maximumscalar product value calculating means for calculating the scalarproducts of the vertex coordinates of said part and said attachingdirection vector and for obtaining the maximum value of the scalarproducts; and means for obtaining the difference between said minimumvalue of scalar product and said maximum value of scalar productobtained and for determining distances between the parts composing saidassembly in a disassembled state on an exploded view based on theobtained difference, thereby an exploded view being displayed in saiddisplay unit corresponding to said distances determined.
 8. An apparatusfor producing an exploded view of an assembly according to claim 7,wherein; said means for determining distances between parts determinessaid distances between parts by adding or subtracting a given shiftvalue to or from said obtained difference between the minimum value ofscalar product and the maximum value of scalar product.
 9. An apparatusfor producing an exploded view of an assembly having an input unit, ageometrical data memory for storing geometrical data of parts composingsaid assembly and a calculating unit for displaying said assembly to adisplay unit based on said geometrical data, which comprises: a memoryfor assembling process data for storing assembling data composed ofattaching orders and attaching directions of said parts; means forproducing a first polyhedron containing the geometrical form of a partto be attached and a second polyhedron containing the geometrical formof a part accepting part to be attached using geometrical data of partsin a memory for said geometrical data; and means for determiningdistances between the parts composing said assembly in a disassembledstate on an exploded view based on the produced geometrical data of thefirst and the second polyhedrons and attaching direction vector in saidmemory for assembling process data, thereby an exploded view beingdisplayed in said display unit corresponding to said distancesdetermined.
 10. An apparatus for producing an exploded view of anassembly having an input unit, a geometrical data memory for storinggeometrical data of parts composing said assembly and a calculating unitfor displaying said assembly to a display unit based on said geometricaldata, which comprises: a memory for assembling process data for storingassembling data composed of attaching orders and attaching directions ofsaid parts; contact surface detecting means for obtaining a contactsurface between a part to be attached and a part accepting part to beattached based on the geometrical data of part to be attached and thegeometrical data of part accepting part to be attached in said memoryfor geometrical data; minimum scalar product value calculating means forcalculating the scalar products of the vertex coordinates of theobtained contact surface and the attaching direction vector in saidmemory for assembling process data and for obtaining the minimum valueof the scalar products; maximum scalar product value calculating meansfor calculating the scalar products of the vertex coordinates of saidpart to be attached and the attaching direction vector and for obtainingthe maximum value of the scalar products; and means for obtaining thedifference between said minimum value of scalar product and said maximumvalue of scalar product obtained and for determining distances betweenthe parts composing said assembly in a disassembled state on an explodedview based on the obtained difference, thereby an exploded view beingdisplayed in said display unit corresponding to said distancesdetermined.
 11. A method of producing an exploded view of an assemblyusing an apparatus having an input unit, a geometrical data memory forstoring geometrical data of parts composing said assembly and acalculating unit for displaying said assembly to a display unit based onsaid geometrical data, the method comprising the steps of: reading outvertex coordinates of a part from said memory for geometrical data;reading out an attaching direction vector from an assembling processdata memory storing assembling process data composed of attaching ordersand attaching directions of parts; calculating the scalar products ofthe vertex coordinates of the part and the assembling vector andobtaining the minimum value of the scalar products; calculating thescalar products of said read-out vertex coordinates of the part and saidread-out attaching direction vector and obtaining the maximum value ofthe scalar products; obtaining the difference between the minimum valueof scalar product and the maximum value of scalar product anddetermining distances between the parts composing said assembly in adisassembled state on an exploded view based on the obtained difference;and displaying an exploded view in said display unit corresponding tosaid distances determined.
 12. An apparatus for producing animation ofassembling, comprising: a geometrical data memory for storinggeometrical data of parts composing an assembly; an attaching proceduredata memory for storing attaching procedure data composed of attachingorders, part to be attached data and attaching direction data; ajointing data memory for storing jointing data composed of part to beattached data and jointing method data; a table for special jointingoperation data memory for storing a table for special jointing operationcomposed of jointing method data and operation data depending on forsaid jointing method data; and operating data producing means forproducing operating data for an animation displayed from the geometricaldata in said geometrical data memory, the attaching procedure data insaid attaching procedure data memory, the jointing data in said jointingdata memory, and the table for special jointing operation in said tablefor special jointing operation memory.
 13. An apparatus for producinganimation of assembling, comprising: a geometrical data memory forstoring geometrical data of parts composing an assembly; an attachingprocedure data memory for storing attaching procedures composed ofattaching orders, part to be attached data and attaching direction data;a jointing data memory for storing jointing data composed of part to beattached data and jointing method data; a table for animation speedratio memory for storing a table for animation speed ratio composed ofjointing method data and operating speed ratio data special for saidjointing method data; and operating data producing means for producingoperating data for an animation displayed from the geometrical data insaid geometrical data memory, the attaching procedure data in saidattaching procedure data memory, the jointing data in said jointing datamemory, and the table for animation speed ratio in said table foranimation speed ratio memory.
 14. An apparatus for producing animationof assembling, comprising: a geometrical data memory for storinggeometrical data of parts composing an assembly; an attaching proceduredata memory for storing attaching procedures composed of attachingorders, part to be attached data and attaching direction data; ajointing data memory for storing jointing data composed of part to beattached data and jointing method data; a table for jointing soundmemory for storing a table for jointing sound composed of jointingmethod data and sound data special for said jointing method data; andoperating data producing means for producing operating data for ananimation displayed from the geometrical data in said geometrical datamemory, the attaching procedure data in said attaching procedure datamemory, the jointing data in said jointing data memory, and the tablefor jointing sound in said table for jointing sound memory.
 15. Anapparatus for producing animation of assembling according to any one ofclaim 12 to claim 14, wherein: said operating data comprises kinds ofmovement, directions of movement, distance of movement and time steps.16. An apparatus for producing animation of assembling according to anyone of claim 12 to claim 15, wherein: said operating data comprises k eyfra me data which is positional data of each part corresponding to time.17. An apparatus for producing animation of assembling according to anyone of claim 12 to claim 14, wherein: said operating data producingmeans comprises detaching operation producing means for producingattaching operation data by which parts to be attached are detached inthe direction opposite to the attaching direction from an assembledstate; and assembling operation producing means for producing attachingoperation data by which parts to be attached are assembled to theattaching direction from detached state.
 18. An apparatus for producinganimation of assembling according to claim 17, wherein: said detachingoperating data producing means determines the distance of movement forthe detaching operation data of a part to be attached using the size ofthe part.
 19. An apparatus for producing animation of assemblingaccording to claim 17, wherein: said assembling operating data producingmeans determines the time steps for the assembling operation data of apart to be attached using the size of the part.
 20. An apparatus forproducing animation of assembling according to claim 17, wherein: saidassembling operating data producing means determines the time steps forthe assembling operation data of a part to be attached using theattaching direction of the part to be attached.
 21. An apparatus forproducing animation of assembling according to claim 17, wherein: saidassembling operating data producing means determines the time steps forthe assembling operation data of a part to be attached using the workdata of the part to be attached.
 22. A method for producing animation ofassembling, the method comprising steps of: reading out necessarygeometrical data from geometrical data of parts composing an assembly;reading out part to be attached data and attaching direction data fromattaching procedure data composed of attaching orders, part to beattached data and attaching direction data; obtaining a correspondingjointing method to the part to be attached read out in the above stepfrom jointing data composed of part to be attached data and jointingmethod data; obtaining a corresponding special operation to the jointingmethod obtained in the above step from a table for special jointingoperation composed of jointing method data and operation data specialfor said jointing method data; and producing operating data for part tobe attached as an input parameter to an animation display function fromthe attaching direction and the special operation with referring to thegeometrical data of the part to be attached.
 23. A method for producinganimation of assembling, the method comprising steps of: reading outnecessary geometrical data from geometrical data of parts composing anassembly; reading out part to be attached data and attaching directiondata from attaching procedure data composed of attaching orders, part tobe attached data and attaching direction data; obtaining a correspondingjointing method to the part to be attached read out in the above stepfrom jointing data composed of part to be attached data and jointingmethod data; obtaining a corresponding animation speed ratio to thejointing method obtained in the above step from a table for animationspeed composed of jointing method data and operating speed ratio dataspecial for said jointing method data; and producing operating data forpart to be attached as an input parameter to an animation displayfunction from the attaching direction and the animation speed ratio withreferring to the geometrical data of the part to be attached.
 24. Amethod for producing animation of assembling, the method comprisingsteps of: reading out necessary geometrical data from geometrical dataof parts composing an assembly; reading out part to be attached data andattaching direction data from attaching procedure data composed ofattaching orders, part to be attached data and attaching direction data;obtaining a corresponding jointing method data to the part to beattached read out in the above step from jointing data composed of partto be attached data and jointing method data; obtaining a correspondingsound data to the jointing method obtained in the above step from atable for jointing sound composed of jointing methods and sound dataspecial for said jointing method data; and producing operating data forpart to be attached as an input parameter to an animation displayfunction from the attaching direction and the sound data with referringto the geometrical data of the part to be attached.
 25. A method forproducing animation of assembling according to any one of claim 22 toclaim 24, wherein: said operating data comprises kinds of movement,direction of movement, distance of movement and time steps.
 26. A methodfor producing animation of assembling according to any one of claim 22to claim 24, wherein: said operating data comprises key frame data whichis positional data of each part corresponding to time.
 27. A method forproducing animation of assembling according to any one of claim 22 toclaim 24, the method further comprising the steps of: producingoperation data by which parts to be attached are detached in thedirection opposite to the attaching direction from an assembled state;and producing operation data by which parts to be attached are assembledin the attaching direction from detached state.
 28. A method forproducing animation of assembling according to claim 27, wherein: saidstep of detaching operating data producing determines the distance ofmovement for the detaching operation data of a part to be attached usingthe size of the part.
 29. A method for producing animation of assemblingaccording to claim 27, wherein: said step of assembling operating dataproducing determines the time steps for the assembling operation data ofa part to be attached using the size of the part.
 30. A method forproducing animation of assembling according to claim 27, wherein: saidstep of assembling operating data producing determines the time stepsfor the assembling operation data of a part to be attached using theattaching direction of the part to be attached.
 31. A method forproducing animation of assembling according to claim 27, wherein: saidstep of assembling operating data producing determines the time stepsfor the assembling operation data of a part to be attached using thework data of the part to be attached.